当前位置:   article > 正文

MySQL十九:分库分表实践_mysql分库分表实践

mysql分库分表实践

在很多小型应用中都没真正使用分库分表,但是说起来并不陌生,因为我们在面试中经常会被问到,今天我们从从以下几个方面来聊聊分库分表:「是什么?解决什么?怎么做?为什么要这么做?即:」

  • 分库分表是什么?
  • 分库分表解决什么问题?
  • 分库分表怎么做?
  • 分库分表什么时候做?
  • 分库分表引发的问题是什么?
  • 分库分表中间件有哪些?

一、什么是分库分表

分库分表其实很好理解,「顾名思义,即把存于一个库的数据分散到多个库中,把存于一个表的数据分散到多个表中」。但是需要明确一点,分库分表不是一件事,而是三件事,也就是「分库分表的三种方案」

  • 「只分库不分表」
  • 「只分表不分库」
  • 「既分库又分表」

1.1 只分库不分表

「从单个数据库拆分成多个数据库的过程,将数据散落在多个数据库中,多个数据库同时提供服务」

1.2 只分表不分库

「从单张表拆分成多张表的过程,将数据散落在多张表内」

1.3 既分库又分表

「把存于一个数据库的单表数据分散到不同库的多个表中」

二、分库分表解决什么问题

大型应用系统需要处理大量用户的请求,比如微信,美团,淘宝等每天都会产生海量的数据,我们知道当数据量或者请求数达到一定数量之后,数据库就会产生性能瓶颈,而为了缓解数据量的压力,比较普遍的方案一方面是使用NoSQL,而另一方面就是分库分表。

2.1 分库解决什么问题

分库就是在我们系统的业务量增长到一定程度之后,「解决数据库本身的性能瓶颈问题」,所以「一般都是业务量增长,遇到以下两种情况时就会考虑分库」

  • 「数据库QPS过高,连接数不足」
    数据库的连接是有上限的,在高并发下,大量请求访问数据库,可能会让数据库宕机,致使整个服务不可用,因此我们可以把「单个数据库拆分成多个数据库,分摊请求,缓解单个数据的读写压力,提高并发量」
  • 「磁盘瓶颈」
    数据量是随着业务量的增多而增多的,而单个数据库的磁盘存储量也是有限的,把「单个数据库拆分成多个数据库,缓解磁盘压力,降低磁盘使用率」

2.2 分表解决什么问题

在之前的

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/407026
推荐阅读
相关标签
  

闽ICP备14008679号