日期:2014-05-16  浏览次数:20444 次

最近分表的一点感想

1. 都是基于散列算法分表,有两种不同的方法,

?一种取模法,但是取模也是先预估100张,也可以先用10张,10张表相当于0, 9,19, 29等,如果模下来的在5就寻址到值为9的那张表,这样即使加入新的10张表也只要迁移部分数据。

?

二种一致性hash,按100张表为例,每个物理节点增加10个虚拟节点。不要舍不得增加虚拟节点,直到算出来的节点比较平均就可以了。

?

2. 数据不要舍不得冗余

?

内容表本身按照ID分,跟用户相关比如收藏,喜欢,转发,发布等都是按照UID分。列表显示的数据都需要冗余。列表显示的数据要尽量控制住。

?

3. 根据id分表不是万能的。有时候需要根据其他字段来分,比如时间。

?

4. 业务数据量不需要分表的不要乱分,比如可以通过回收的策略清理数据的。