作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题
代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等
联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。码炫课堂的个人空间-码炫码哥个人主页-面试,源码等
回答
为什么需要分库分表?一个原因:单表、单库已经无法支撑我们的业务了。
一、数据库容量限制
- 存储容量:单个数据库的存储容量是有限的,当我们应用的数据量达到一定规模时,但是数据库就无法存储整个应用的所有数据。
- IO 性能:当数据库的容量很大时,磁盘的读写性能会成为瓶颈,影响查询和写入的效率。
二、并发处理能力限制
- CPU和内存限制:单库的 CPU 和内存资源有限,他是无法应对高并发场景的
- 连接数限制:数据的最大连接数是有限的,如果在高并发场景下,容易造成连接数耗尽,连接数耗尽,导致数据库性能下降或者连接失败。
在 MySQL 中我们可以通过以下命令获取最大连接数:
show variables like '%max_connections%'

所以,
- 分库:主要是为了解决单个数据库实例存储容量和并发处理能力的瓶颈问题。
- 分表:主要是为了解决单张表数据量过大导致的查询和写入性能问题。
所以,无论是分库还是分表,最终目标都是为了性能问题。
637

被折叠的 条评论
为什么被折叠?



