Mysql分表的一个考虑

  今天看到一篇博客,讲述的是Mysql的分表方案,内容比较简单,不过有个思路倒是挺好的,记录下,后续分表可以参考

作者主要是说到两种分表,一个是取模,另一个是范围分表

取模:比如用户ID%10,分10张表

范围分表:比如约定,用户ID0~1000w的数据存在表1,1000w~2000w的用户表2,以此类推

 

两者各有优缺点,主要体现在扩展性,冷热数据均匀分布的问题。

取模的话,冷热数据比较均衡,但是扩展性比较差,加入后期数据量翻一倍,10个表存不下了,再加10个表咋办?

范围分表的话不存在扩展性问题,但是按照一般的用户来说,新用户比较活跃,大部分查询都在最新的表上

 

解决问题很简单,两者综合,貌似好多解决方案都是各取所长

首先根据范围分组,比如用户ID1~4000w,分在group1,然后在group1里面做取模分表,相当于group1最大的数据量已经确定了,扩展问题不存在了

 

参考文章: https://www.geek-share.com/detail/2771122100.html 

posted on 2019-06-10 11:49  风生水小琦  阅读(480)  评论(0编辑  收藏  举报

导航