分片策略
更新時間 2023-12-15 09:19:57
最近更新時間: 2023-12-15 09:19:57
分享文章
本文主要介紹了DRDS的分片策略。
分片算法的介紹
DRDS會將邏輯表進行切割,如何合理的選擇分片算法至關重要。通常,要考慮如下幾點:
- 切分后數據分布是否均勻。
- 切分后是否會形成數據訪問熱點 。
- 算法是否足夠簡單,性能足夠好 。
- 擴容時涉及的數據遷移數量及難度。
- 對多值和范圍查詢的支持。
已支持的分片算法包括:取模分片、字符串hashCode取模分片、枚舉分片、時間范圍分片、枚舉分組取模分片、枚舉分組字符串hashCode取模分片等。分片算法的介紹具體請參見 分布式關系型數據庫?> 產品介紹 ?> 常用概念 ?> 分片算法。
分片算法的策略選擇
上述幾種分片算法的適用場景如下。
取模分片
適用場景:分片鍵必須是整數,分片鍵求余后的值均勻分布。一般來說,用作整數的主鍵id作為取模分片較為合適。
枚舉分片
適用場景:有些業務需要按照省份或區縣來做保存,而全國省份區縣固定的,這類業務使用本條規則。
時間范圍分片
適用場景:適用日志數據等按時間范圍進行存儲的數據。這種分片算法適用于日志數據、監控數據在內等以時間緯度存儲的數據。
枚舉分組取模分片
適用場景:枚舉鍵可以是整數也可以是字符串,取模鍵必須是整數,取模鍵求余后的值均勻分布。如: 數據庫的數據需要按區域進行隔離,但隔離后的數據量依然巨大需要按取模方式進行再次分片,可以選擇此算法。
枚舉分組字符串hashCode取模分片
適用場景:枚舉鍵可以是整數也可以是字符串,取模鍵是字符串,取模鍵字符串hashCode求余后的值均勻分布。如: 數據庫的數據需要按區域進行隔離,但隔離后的數據量依然巨大需要按取模方式進行再次分片,可以選擇此算法。