为什么说作为程序员分库分表的必要性一定要掌握?

互联网大厂程序员必须掌握海量数据和高并发问题处理技能 , 期望进入大厂的程序员一定要仔细看这篇!
MySQL 分库分表是做什么的?
相信很多程序员对 MySQL 都比较熟悉了 , 目前国内大部分互联网公司都选择 MySQL 数据库来支撑自己的业务 , 当用户量级达到千万级以上后 , 就需要用到分库分表 。
以 2700 万 C 端用户量的拉勾为例 , 介绍一下什么情况下必须用分库分表:
拉勾发展到现在已经调整了 3 次数据库存储方式 ,
1、发展之初用户量只有 10 万 , 只用单机数据库足以支撑;
2、发展一段时间之后 , 用户量激增到 100 万、500 万、800 万 , 面对用户的不断增多 , 系统的高并发和高可用等各种问题 , 开始使用数据库主从架构;
为什么说作为程序员分库分表的必要性一定要掌握?文章插图
3、现在的拉勾拥有 2700 万 C 端用户 , 月活跃用户达 319 万 , 如果继续使用主从架构 , 数据库的存储资源有限 , 其负载能力也是有限的 , 单表数据量太大 , 会极大影响 sql 执行的性能 , 这时就开始使用分库分表来加速数据库处理能力 。
为什么说作为程序员分库分表的必要性一定要掌握?文章插图
【为什么说作为程序员分库分表的必要性一定要掌握?】使用分库分表后 , 完美解决了以下问题:

  • 用户请求量太大
  • 单服务器 TPS 、内存、 IO 都是有上限的 , 需要将请求打散分布到多个服务器
  • 单库数据量太大
  • 单个数据库处理能力有限;单库所在服务器的磁盘空间有限;单库上的操作 IO 有瓶颈
  • 单表数据量太大
  • 查询、插入、更新操作都会变慢 , 在加字段、加索引、机器迁移都会产生高负载 , 影响服务
到这里你应该知道进行分库分表的重要性 , 以及什么情况下需要进行分库分表 。