分布分表
为什么要分库分表
随着业务发展,用户量越来越大,当用户达到100w时可能单表数据是百万级别,如果用户达到1亿,单表数据就是亿级别,如果有十亿用户,单表至少是十亿量级。无论用什么数据库,当数据量达到千万以上,无论是查询,更新等操作性能都会有影响,因此需要对数据库进行分库分表,把数据量维持在合适的量级,在不影响业务的前提下,尽可能的提升数据库的性能。
分库分表的优缺点
优点: 查询一次的时间短了 数据分布在不同的文件,磁盘I/O性能提高 读写锁影响的数据量变小 插入数据库需要重新建立索引的数据减少
缺点:
- 查询变复杂
- group语句变复杂
- 分页查询
垂直分表
将一个表的字段拆分到多个表中,
水平分表
将表中数据分到多个表中,数据结构不变,查询时通过hash或者代理等其他方式映射到具体的表里。