美文网首页
015 为什么要分表分库

015 为什么要分表分库

作者: 双鬼带单 | 来源:发表于2021-11-13 21:35 被阅读0次

为什么要分表分库

分表分库一般会在以下情况下出现:

一、数据库本身的性能瓶颈

  1. 单机数据库的存储容量限制
  2. 单机数据库的连接数限制
  3. 单张表的性能瓶颈
  4. 单张表性能瓶颈;
  5. 单个数据库性能瓶颈;

二、特殊场景需求

  1. SasS 特定场景下的数据隔离需要;

数据库瓶颈

不管是 IO 瓶颈,还是 CPU 瓶颈,最终都会导致数据库的查询缓慢甚至无法查询。进而导致业务服务的难易提供并发量、吞吐量。数据库瓶颈也会导致查询缓慢、大量的超时情况进而导致程序无法使用或者崩溃的情况

IO 瓶颈

第一种:磁盘读 IO 瓶颈,数据太多,数据库缓存放不下,每次查询时会产生大量的 IO,降低查询速度 -> 分库和垂直分表

第二种:网络 IO 瓶颈,请求的数据太多,网络带宽不够 -> 分库

CPU 瓶颈

第一种:SQL 问题,如 SQL 中包含 join,group by,order by,非索引字段条件查询等,增加 CPU 运算的操作 -> SQL 优化,建立合适的索引,在业务 Service 层进行业务计算。

第二种:单表数据量太大,查询时扫描的行太多,SQL 效率低,CPU 率先出现瓶颈 -> 水平分表。

网上也流传着一些更通俗具体的说法比如:当单表的数据量达到1000W或100G以后。更通俗的说话就是数据库已经无法满足性能需求了。至于什么情况不能满足性能需求,还是要根据具体的场景来确定的,并没有什么金科玉律。

相关文章

  • 015 为什么要分表分库

    为什么要分表分库 分表分库一般会在以下情况下出现: 一、数据库本身的性能瓶颈 单机数据库的存储容量限制 单机数据库...

  • 面试必备:我们为什么要分库分表?

    目录 什么是分库分表 为什么需要分库分表呢 如何分库分表 什么时候开始考虑分库分表 分库分表会导致哪些问题 分库分...

  • 分库分表

    分库分表 为什么要分库分表? 超大容量问题 性能问题 如何去做到 垂直切分①垂直分库; 解决的是表过多的问题②垂直...

  • sharding-jdbc分库分表入门知识点

    为什么要分库分表 随着业务扩大,系统访问量增大,数据表数据增大,导致数据库性能出现瓶颈 如何分库分表 水平分库分表...

  • 为什么要分库分表?

    面试题 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间...

  • 为什么要分库分表?

    面试题 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间...

  • 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?

    面试题 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间...

  • 42、如何进行分库分表?

    1、面试题 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表...

  • 分库分表

    面试题 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间...

  • 一个关于 MySQL 分库分表的面试 3 连炮

    1、面试题 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表...

网友评论

      本文标题:015 为什么要分表分库

      本文链接:https://www.haomeiwen.com/subject/yngzzltx.html