表分区,选取哪个字段作为分区依据最关键。一般就是主键,这样主键对应的就是聚集索引;否则的话,如果主键想建聚集索引,就一定要包含分区字段,变成复合主键,分分钟2、3个字段一起做主键。
实践中,发现复合主键,又是聚集索引,对性能影响很大:查询很快,但数据库一忙,插入和更新,就慢得离谱,几分钟都没结果出来。不知道什么缘故。
就算是查询,聚集索引也比非聚集索引快得多,如果查询量很多,很频繁,所以选好分区依据字段真是至关重要。
不明白?因为分区字段一定是对应聚集索引。
如果一个表,常用于作为条件过滤的字段是字符型,那这个表应该怎么分区呢?新建一个表,存放这个或这些字段,然后在原表存放新表的流水号,再用这个流水号来分区,曲线救国。这是很浅显的道理,好像也是关系型数据库基本的理论,可是我之前一直都想不到。