分表分为水平(按行)分表和垂直分表(按列)
根据经验,Mysql表数据一般达到百万级别,查询效率会很低,容易造成表锁,甚至堆积很多连接,直接挂掉;水平分表能够很大程度减少这些压力。
如果一张表中某个字段值非常多(长文本,二进制等),而且只有在很少的情况下会查询,这时候就可以把字段多个单独放到一个表,通过外键关联起来;
考试详情,一般我们只关注分数,不关注详情。
1,按时间分表
这种分表方式有一定局限性,当数据有较强的实效性,如微博发送记录,微信消息记录等,这种数据很少有用户会查询几个月前的数据,就可以按照月分表。
2,按区间分表
一般在有严格的自增id需求上,如按照user_id水平分表
id=1-100w
id=100w-200w
3.hash分表
通过原始目标的id或者名称,通过一定的hash算法计算出数据存储的表名,然后访问相应的表。