訂單記錄 須要 分庫分表 存儲,分庫、分表 的 sharding 策略 都是 基於 orderId 進行 計算spa
若是 訂單記錄 分庫分表 的 結果爲 x * y(有 x 個庫,每一個庫中有 y 張表),那麼 庫、表 的 sharding 策略應當爲blog
這種 sharding 策略不正確,數據 分攤 不均勻im
eg一、4 * 4d3
[0、四、八、十二、1六、20] 這些數字 模 4,只會餘 0 數據
eg二、4 * 6db
[0、四、八、十二、1六、20] 這些數字 模 4,只會餘 0、二、4 img
【問題】di
爲何 [0、四、八、十二、1六、20] 這些數字 對 4 或 6 取模 所獲得的 餘數 之間 不是連續的?(致使 不能 連續地、均勻地 分攤在 全部 表中)co
【回答】d3
【解決】
將 [0、四、八、十二、1六、20] 這些數字 除以 4,使得 step 爲 1
eg一、4 * 4
[0、四、八、十二、1六、20] 這些數字 整除 4,模 4,會餘 0、一、二、3
eg二、4 * 6
[0、四、八、十二、1六、20] 這些數字 整除 4,模 6,會餘 0、一、二、三、四、5