为什么分区键必须是主键或唯一键的子集,用既不是主键也不是唯一键子集的列作为分区键不行吗?

为什么分区键必须是主键或唯一键的子集,用既不是主键也不是唯一键子集的列作为分区键不行吗?

已经咨询相关同学

确切来说是索引组织表的限制

不行,mysql也是这样的规则。好定位

不行,因为oceanbase是索引组织表,表的数据是按主键排序的,二级索引相当于主键+二级索引列的复核索引,同理主键如果不做分区键,分区键肯定是主键+分区列 的规则。所谓的唯一键子集,我理解就是唯一键非空的那部分。假如有一个唯一列由null值,那这个列一定做不了分区键,因为null值是无法定位放到哪个分区的,所以一定需要加上其他列(或者虚拟列)组成一个非空的复核唯一键,才能用于做分区键,那这种用分区键其实就是 主键列+唯一列+其他列