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