什么样的表需要拆分:根据表的体积、表的行数、访问特点来衡量表是否需要拆分
一.拆分标准是:
1.表的体积大于2G或行数大于1000w,以单表主键等简单形式访问数据,这个时候需要分表
2.表的体积大于2G或行数大于500W,以两表jion,小范围查询(结果集小100行)等形式访问数据,这个时候需要分表
3.表的体积大于2G或行数大于200w,以多表join,范围查询,order by,group by,高频率等复杂形式访问数据,尤其DML,这个时候需要分表
4.表的字段中含有text等大字段的、varchar(500)以上的、很少使用的字符型字段拆分成父子表,这种分表可以和以上联合使用
5.数据有时间过期特性的,需要做数据分表归档处理
只要达到上面任何一个标准,都需要做分表处理
二.分表方法:
1.冷热数据分表:适用小访问量,冷数据很少使用
1.1 单表字段很多,把频繁使用整型字段的和非频繁使用的字符型字段或大字段拆到两个表中
1.2 表数据具有时间过期性,把过期数据拆分到历史表里或者按时间梯度分表
2.横向分表:适用大访问量
2.1 如哈希等分切表或其他基于对某数字取余的切表,优点是方便数据分布,缺点是无法再扩展
2.2 按主键id递增分表,比如每100w个id一个分表,优点是方便扩展,缺点是压力不均
2.3 按日期分表,比如每天、每月、每年一个分表,优点是方便扩展,缺点是压力不均