分库分表

1,使用什么字段作为分片主键?
一般需要考虑三个要求:数据尽量均匀分布在不同的表或库中,跨库操作尽可能少,所选字段的值不会变。
通常将 userID 作为分片主键,因为用户通常通常需要查询所有订单,而这是必需满足的需求。

2,分片策略是什么?
根据范围分片:根据分片主键范围,划分不同分片,如 1 - 10000, 10001 - 20000
根据 hash 值分片:根据分片主键的 hash 值,取模一个数,为方便扩展,这个数通常是2的n次方,这样增加分片时,只要把原来的每个分片迁移一半的数据即可。
根据 hash 值和范围混合分片:先按范围,再按 hash 值分片。

3,历史数据如何迁移?
旧的架构继续运行,存量数据直接迁移,增量数据监听binlog日志,然后通过canal通知迁移程序迁移数据,等到新的数据库拥有全部数据且校验通过后,再逐步切换到新架构。

 

 

posted @ 2023-06-06 19:35  心随所遇  阅读(21)  评论(0编辑  收藏  举报