分布分表

为什么要分库分表

随着业务发展,用户量越来越大,当用户达到100w时可能单表数据是百万级别,如果用户达到1亿,单表数据就是亿级别,如果有十亿用户,单表至少是十亿量级。无论用什么数据库,当数据量达到千万以上,无论是查询,更新等操作性能都会有影响,因此需要对数据库进行分库分表,把数据量维持在合适的量级,在不影响业务的前提下,尽可能的提升数据库的性能。

分库分表的优缺点

优点: 查询一次的时间短了 数据分布在不同的文件,磁盘I/O性能提高 读写锁影响的数据量变小 插入数据库需要重新建立索引的数据减少

缺点:

  1. 查询变复杂
  2. group语句变复杂
  3. 分页查询

垂直分表

将一个表的字段拆分到多个表中,

水平分表

将表中数据分到多个表中,数据结构不变,查询时通过hash或者代理等其他方式映射到具体的表里。