最近在做tidb相关测试,发现分裂分区用时非常久,请问一下在以下情况会涉及数据的重整吗?如果答案为是的话,为什么要重整数据, 为什么不做成像region分裂那样只改元数据
是的,分区表的分裂分区涉及到数据回填,所以耗时较久
为什么需要数据回填?因为分区表在设计上,底层数据组织方式不一样,仅变动元数据不行
2 个赞
分片健值不一样。要把数据分到对应分区去。
因为分区表的分裂不仅仅是元数据的变更,它还涉及到数据在物理存储上的重新分布,所以肯定会慢很多的
请问一下分区表具体是在底层怎么组织的, 有相关文档吗 谢谢
分区时物理存储上的分隔,肯定要重整数据,且费时
2 个赞
好像官方文档上还真没有,只有普通表的,参考: https://docs.pingcap.com/zh/tidb/stable/tidb-computing#表数据与-key-value-的映射关系
我猜测分区表的可能是把表 ID 换成了分区 ID,具体可能得看代码了
1 个赞
谢谢大家的回复 ,已经理解了 因为底层存的是partition_id+row_id, 当partition变了需要重整所有数据
1 个赞