互联网大厂程序员必须掌握海量数据和高并发问题处理技能,期望进入大厂的程序员一定要仔细看这篇!
MySQL 分库分表是做什么的?
相信很多程序员对 MySQL 都比较熟悉了,目前国内大部分互联网公司都选择 MySQL 数据库来支撑自己的业务,当用户量级达到千万级以上后,就需要用到分库分表。
以 2700 万 C 端用户量的拉勾为例,介绍一下什么情况下必须用分库分表:
拉勾发展到现在已经调整了 3 次数据库存储方式,
1、发展之初用户量只有 10 万,只用单机数据库足以支撑;
2、发展一段时间之后,用户量激增到 100 万、500 万、800 万,面对用户的不断增多,系统的高并发和高可用等各种问题,开始使用数据库主从架构;
3、现在的拉勾拥有 2700 万 C 端用户,月活跃用户达 319 万,如果继续使用主从架构,数据库的存储资源有限,其负载能力也是有限的,单表数据量太大,会极大影响 sql 执行的性能,这时就开始使用分库分表来加速数据库处理能力。
使用分库分表后,完美解决了以下问题:
- 用户请求量太大
- 单服务器 TPS 、内存、 IO 都是有上限的,需要将请求打散分布到多个服务器
- 单库数据量太大
- 单个数据库处理能力有限;单库所在服务器的磁盘空间有限;单库上的操作 IO 有瓶颈
- 单表数据量太大
- 查询、插入、更新操作都会变慢,在加字段、加索引、机器迁移都会产生高负载,影响服务
到这里你应该知道进行分库分表的重要性,以及什么情况下需要进行分库分表。
注意:本文归作者所有,未经作者允许,不得转载