https://mp.weixin.qq.com/s/fbZ8SpHh8ScV8Xt50PGb6A
分库分表如何做到永久不迁移数据和避免热点?
hash+range方法结合。
hash取模方法:数据分布均匀,不会有热点问题、扩容复杂
range范围方案:扩容方便、存在热点问题
解决方案:hash+range方法结合
group组的概念,group01组存如id在0~4000万数据
group01有三个DB,db1 有四张表,db2有三张表,db3有三张表
id%10==(0~3落入db1;4~6落入db2;7~9落入db3)具体落入哪张表,用range范围决定。
扩容时,增加一个group02即可,group01的数据不用变。
上述表的对应关系可以配置到分布式配置中心zookeeper中。
知识点:分布式id
group表:
group_id group_name start_id end_id
db表:
db_id db_name group_id hash_value
group和db的关系
table_id table_name db_id start_id end_id