生产环境遇到的问题:
1、用户量请求太大 :但服务器TPS、内存、IO都是有上限的,需要将请求打散到多个服务上 2、单库数据量太大 :单个数据库的处理能力有限,磁盘空间有限,操作IO有瓶颈 3、单表数据量太大 :查询、插入、更新都会变慢,在加字段、加索引、机器迁移都会产生高负载,影响服务2、垂直拆分 2.1、垂直分库
- 微服务架构,业务切分的足够独立,数据也会按照业务划分,保证了数据分离,提高了数据库的吞吐能力
业务上的数据隔离,一个库拆成三个库2.2、垂直分表
- 表中字段太多且包含大字段,对数据库IO和内存受影响,同时产生的binlog文件会很大,mysql在主从同步时会有延迟的风险
一张表产分为两个表,两表字段整合相当于一张表3、水平拆分 3.1、水平分表(实际上不用)
- 针对订单量巨大的单张表,按照规则把一张表的数据切分到多张表里面去。
- 但是这些表还是在一个库中,所以库级别的数据库操作还有IO瓶颈
- 将单张表的数据切分到多个不同服务器上,每个服务器上具有相应的库和表,只是表中数据集合不同。
- 水平分库分表能有效环节单机和单库的性能瓶颈和压力,突破IO、连接数、硬件资源等的瓶颈
水平分库原则 :不跨库、不跨表,不保证同一类的数据在同意个服务器上



