知识卡片
水平分表的三种路由算法及取舍
内容
水平分表后,数据落在哪个子表由路由算法决定:范围路由(按ID分段)能平滑扩充新表,但各分段数据量易不均;Hash路由(取模)分布均匀,但扩容时几乎所有数据要重新分布;配置路由(独立表记录归属)最灵活,但每次访问要多查一次路由表。发散:这三种方案对应分布式系统”均匀性vs可扩展性vs灵活性”三角权衡,同样逻辑在一致性哈希等场景反复出现。
参考来源
- 位置:《从0开始学架构》第18章《15|高性能数据库集群:分库分表》"路由算法"一节(源文件:_epub-src/OEBPS/Text/part0017_split_003.html)
- 结论依据:原文分析三种路由算法各自优缺点——"范围路由的优点是可以随着数据的增加平滑地扩充新的表……一个比较隐含的缺点是分布不均匀";"Hash路由的优点是表分布比较均匀,缺点是扩充新的表很麻烦,所有数据都要重分布";"配置路由设计简单,使用起来非常灵活……缺点就是必须多查询一次"。
- 原始内容:范围路由的优点是可以随着数据的增加平滑地扩充新的表……一个比较隐含的缺点是分布不均匀……Hash路由的优点是表分布比较均匀,缺点是扩充新的表很麻烦,所有数据都要重分布……配置路由设计简单,使用起来非常灵活……缺点就是必须多查询一次。