随着业务的增长,一般的公司都会经历一个从单库单表到分库分表的过程 , 需要考虑以下要素判断是否开始分库分表
1....如果mysql单库的QPS超过1000就要考虑分库了 , 一般根据业务进行分库
目前新浪邮箱的主库是sinanet 各种辅助库 userservice客服系统 sinastore 文件存储库 entsales...单表的数据量非常大时 , 需要考虑分表 , 超过1000万就要考虑了 , 因为此时b+树索引的高度是3-5左右
如果有单字段特别大 , 就要把该字段独立出来 ,这就是垂直分表 , 遵循冷热拆分 , 大小拆分...这里基本在设计的时候就已经考虑好了 , 一般不会出现这种情况
如果是数据量特别大 , 就要结合业务需求和产品特性 , 选择合适的拆分算法
如何切分?...考虑到后续扩展表的数据时,数据迁移会比较难做。
新浪邮箱的用户表是根据默认域邮箱hash取模进行的拆分
b:一致性hash算法
为了保证后续迁移数据影响面较小,建议使用一致性hash算法。