我相信不 太注意的同學肯定會入坑,今天我差點也入坑了,后面自己問自己如果我用key分區,自己問自己 我的分區數應該是多少???
后面我陷入了沉思.........
我第一次想先隨便弄一個分區數,在本地試試,后面意外發生了。
1.我隨便定了一個數10個分區:
查看的SQL語句:
SELECT
table_schema,
table_name,
partition_name,
partition_ordinal_position,
partition_method,
partition_expression,
table_rows
FROM
information_schema.`PARTITIONS`
WHERE
table_name = '自己分區表名';
看上面的圖是不是發現一個問題,就是偶數的都有數據,怎么奇數沒有數據呢,這不是分區通過hash 計算然后取模算法嗎????
后面我嘗試了幾種數據發現一個規律
總結:
(1).如果設置40,64,128等偶數個分區數(PARTITIONS 64),會導致編號為奇數的分區(p1, p3, p5, p7, ... p2n-1)完全插不進數據;
(2).如果設置63,121(PARTITIONS 63)這種奇數但非質數個分區數,所有分區都會有數據,但是不均勻;
(3).如果設置127,31這種質數個分區數(PARTITIONS 127),所有分區都會有數據,並且非常均勻;