分析MySQL应用架构发展演变史

MySQL是最流行的关系型数据库软件之一 。由于其体积小、速度快、开源免费、简单易用、维护成本低等,在集群架构中易扩展、高可用,因此深受开发者和企业的喜爱 。
今天我们一起来学习了解下MySQL数据库应用架构的发展 。
单体架构该架构指的是应用程序系统的所有数据存储只需要一个MySQL实例,就能满足数据的写入和读取需求 。

分析MySQL应用架构发展演变史

文章插图
单体架构
该架构适用于初期的小型应用程序,如果不断发展成长为大型应用程序,它就会出现如下应用瓶颈:
  1. 需要存储的数据量太大,超出一个MySQL实例的承受能力;
  2. 对数据库的读写操作量太大,超出一个MySQL实例的承受能力;
  3. 如果仅有的这个MySQL实例挂掉了,整个应用程序也就不能对外提供服务了 。
主从架构该架构主要解决的就是上面单体架构的出现的应用瓶颈的 。已有的MySQL实例充当主库,负责写入操作,存储数据并同步从库 。然后通过新增一个及以上的MySQL实例作为从库,来分担读取数据的压力 。也可以在主库的MySQL实例挂掉之后,切换到从库来保证应用程序的高可用性 。
分析MySQL应用架构发展演变史

文章插图
主从架构
该架构适用于写少读多的场景,如果出现大量的写入操作,就会出现如下应用瓶颈:
  1. 对数据库的写操作量太大,超出一个MySQL主库实例的承受能力;
  2. 需要存储的写入数据量太大,超出一个MySQL主库实例的承受能力 。
分库分表对于单体架构和主从架构都遇到过的写入瓶颈和存储瓶颈时,可以通过分库分表来解决,它分为垂直拆分和水平拆分 。
  • 垂直拆分:就是专库专用,按照不同的业务对数据表进行分类,发布到不同的数据库上 。

分析MySQL应用架构发展演变史

文章插图
垂直拆分
这种拆分方式,能更清晰的对模块进行划分,但最终还是会存在单张表的大数据量,引起数据库存储瓶颈的问题 。
  • 水平拆分:就是将一张数据表按照某种规则进行拆分,拆成多张表,每个表中存储一部分数据,分别放到不同的数据库中 。

分析MySQL应用架构发展演变史

文章插图
【分析MySQL应用架构发展演变史】水平拆分
这种拆分方式,能够解决垂直拆分存在的单表大数据量问题 。
因此,垂直拆分和水平拆分在实际应用中,可以结合使用,优势互补 。


    推荐阅读