如何知道使用 key 分区时,对应数值会落到哪个分区呢?
key 分区规则:系统会对 KEY 分区键做内部默认的 HASH 函数后再取模。用户通常无法通过简单计算来确认某一行数据属于哪个分区。
解决方案
可以通过以下 2 种方式确认:
1)已有 key 分区的表时,通过 explain 看计划中 Query Plan 扫描的 partition 分区,例如复合分区键: explain select 1 from t where part_key1 = ? and part_key2= ? ;
2)没有 key 分区的表时,例如: select partition_key(key_values1,key_vales2) % partition_num ; 返回的是第几个分区数,即按 p0 分区开始计算,第 9 个分区是 p8