分库分表知识总结(一)之解决问题

简介: 分库分表知识总结(一)之解决问题

前因

随着公司业务快速发展,数据库中的数据量猛增,访问性能也变慢了,优化迫在眉睫。分析一下问题出现在哪儿呢? 关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。

针对前因的解决方案:

  • 通过提升服务器硬件能力来提高数据处理能力,比如增加存储容量 、CPU等,这种方案成本很高,并且如果瓶颈在 MySQL 本身那么提高硬件也是有很的。
  • 把数据分散在不同的数据库中,使得单一数据库的数据量变小来缓解单一数据库的性能问题,从而达到提升数据库性能的目的,如下图:将电商数据库拆分为若干独立的数据库,并且对于大表也拆分为若干小表,通过这种数据库拆分的方法来解决数据库的性能问题。

概念

分库分表就是为了解决由于数据量过大而导致数据库性能降低的问题,将原来独立的数据库拆分成若干数据库组成 ,将数据大表拆分成若干数据表组成,使得单一数据库、单一数据表的数据量变小,从而达到提升数据库性能的目的。

操作分类

分库分表包括分库和分表两个部分,接下来的文章来我们来说说。

目录
相关文章
|
Java 中间件 数据库连接
分库分表的4种方案
分库分表的4种方案
913 0
|
2月前
|
存储 SQL 关系型数据库
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
MySQL如何进行分库分表、数据迁移?从相关概念、使用场景、拆分方式、分表字段选择、数据一致性校验等角度阐述MySQL数据库的分库分表方案。
402 15
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
|
SQL 关系型数据库 MySQL
MySQL优化方案
MySQL优化方案
353 9
MySQL优化方案
|
6月前
|
存储 关系型数据库 UED
✅到底有没有必要分库分表,如何考量的
是否需要分库分表取决于数据量、负载、增长速度、查询需求、扩展性、容错性和维护成本。当单表数据量接近2000万时,由于B+树结构,查询效率可能下降。B+树的高度和数据页限制了单表容量,通常保持在3-4层,以保证查询性能。以3层B+树、16KB数据页和1KB/行数据为例,可存约2000万条数据。权衡业务需求和技术因素,适时决定是否分表。
|
弹性计算 Java 关系型数据库
分库分表比较推荐的方案
ShardingSphere 绝对可以说是当前分库分表的首选!ShardingSphere 的功能完善,除了支持读写分离和分库分表,还提供分布式事务、数据库治理等功能。另外,ShardingSphere 的生态体系完善,社区活跃,文档完善,更新和发布比较频繁
184 0
|
11月前
|
数据库
分库分表是一种数据库优化方式
分库分表是一种数据库优化方式
66 1
|
存储 缓存 NoSQL
分库分表有哪些思路和技巧?(建议收藏)
分库分表有哪些思路和技巧?(建议收藏)
315 0
分库分表有哪些思路和技巧?(建议收藏)
|
SQL 缓存 大数据
SQL优化的出发点
SQL优化建议
86 0
|
存储 SQL 算法
好好的系统,为什么要分库分表?
好好的系统,为什么要分库分表?
270 1
|
存储 SQL 缓存
大厂都在用的MySQL优化方案(中)
大厂都在用的MySQL优化方案
199 0
大厂都在用的MySQL优化方案(中)