分区概述
当数据库或表的数据量较大,或者数据库集群部署在多个区域时,可以采用对数据进行地理分区,从而降低读延时,提高系统的整体性能。InCloud ZNBASE支持对数据库索引列进行分区,索引列可以为单列,也可以为联合索引下的多列。多列分区可以进一步指定子分区,对内部数据进行进一步划分。
原则上保证分区表内的数据都有其对应的分区,因此对于未指定分区的数据建立默认(default)分区,且默认分区仅在存在未分区数据的时候显示。由于子分区数据必然存在于父分区内,因此子分区对应默认分区不显示。
按照索引类型的不同将索引列分为主键索引和其他索引,对应分区方式分别称为主键分区和索引分区。
需要注意的是,分区有一定的约束:
只有指定了索引的列才能建立分区;
联合索引下建立子分区时指定列顺序必须同联合索引顺序一致,且不能跳跃指定。例如:INDEX id (a, b, c)下不能对(b, c)、(a, c)、(b, c)、(b)、(c)列指定分区,只支持(a)、(a, b)、(a, b, c)。