今天看到一篇博客,讲述的是Mysql的分表方案,内容比较简单,不过有个思路倒是挺好的,记录下,后续分表可以参考
作者主要是说到两种分表,一个是取模,另一个是范围分表
取模:比如用户ID%10,分10张表
范围分表:比如约定,用户ID0~1000w的数据存在表1,1000w~2000w的用户表2,以此类推
两者各有优缺点,主要体现在扩展性,冷热数据均匀分布的问题。
取模的话,冷热数据比较均衡,但是扩展性比较差,加入后期数据量翻一倍,10个表存不下了,再加10个表咋办?
范围分表的话不存在扩展性问题,但是按照一般的用户来说,新用户比较活跃,大部分查询都在最新的表上
解决问题很简单,两者综合,貌似好多解决方案都是各取所长
首先根据范围分组,比如用户ID1~4000w,分在group1,然后在group1里面做取模分表,相当于group1最大的数据量已经确定了,扩展问题不存在了