回答
为什么需要分库分表?一个原因:单表、单库已经无法支撑我们的业务了。
一、数据库容量限制
- 存储容量:单个数据库的存储容量是有限的,当我们应用的数据量达到一定规模时,但是数据库就无法存储整个应用的所有数据。
- IO 性能:当数据库的容量很大时,磁盘的读写性能会成为瓶颈,影响查询和写入的效率。
二、并发处理能力限制
- CPU和内存限制:单库的 CPU 和内存资源有限,他是无法应对高并发场景的
- 连接数限制:数据的最大连接数是有限的,如果在高并发场景下,容易造成连接数耗尽,连接数耗尽,导致数据库性能下降或者连接失败。
在 MySQL 中我们可以通过以下命令获取最大连接数:
show variables like '%max_connections%'
所以,
- 分库:主要是为了解决单个数据库实例存储容量和并发处理能力的瓶颈问题。
- 分表:主要是为了解决单张表数据量过大导致的查询和写入性能问题。
所以,无论是分库还是分表,最终目标都是为了性能问题。
Java 面试宝典是大明哥全力打造的 Java 精品面试题,它是一份靠谱、强大、详细、经典的 Java 后端面试宝典。它不仅仅只是一道道面试题,而是一套完整的 Java 知识体系,一套你 Java 知识点的扫盲贴。
它的内容包括:
- 大厂真题:Java 面试宝典里面的题目都是最近几年的高频的大厂面试真题。
- 原创内容:Java 面试宝典内容全部都是大明哥原创,内容全面且通俗易懂,回答部分可以直接作为面试回答内容。
- 持续更新:一次购买,永久有效。大明哥会持续更新 3+ 年,累计更新 1000+,宝典会不断迭代更新,保证最新、最全面。
- 覆盖全面:本宝典累计更新 1000+,从 Java 入门到 Java 架构的高频面试题,实现 360° 全覆盖。
- 不止面试:内容包含面试题解析、内容详解、知识扩展,它不仅仅只是一份面试题,更是一套完整的 Java 知识体系。
- 宝典详情:https://www.yuque.com/chenssy/sike-java/xvlo920axlp7sf4k
- 宝典总览:https://www.yuque.com/chenssy/sike-java/yogsehzntzgp4ly1
- 宝典进展:https://www.yuque.com/chenssy/sike-java/en9ned7loo47z5aw
目前 Java 面试宝典累计更新 400+ 道,总字数 42w+。大明哥还在持续更新中,下图是大明哥在 2024-12 月份的更新情况:
想了解详情的小伙伴,扫描下面二维码加大明哥微信【daming091】咨询
同时,大明哥也整理一套目前市面最常见的热点面试题。微信搜[大明哥聊 Java]或扫描下方二维码关注大明哥的原创公众号[大明哥聊 Java] ,回复【面试题】 即可免费领取。