分析MySQL应用架构发展演变史
摘要MySQL是最流行的关系型数据库软件之一。由于其体积小、速度快、开源免费、简单易用、维护成本低等,在集群架构中易扩展、高可用,因此深受开发者和企业的喜爱。今天我们一起来
MySQL是最流行的关系型数据库软件之一。由于其体积小、速度快、开源免费、简单易用、维护成本低等,在集群架构中易扩展、高可用,因此深受开发者和企业的喜爱。
今天我们一起来学习了解下MySQL数据库应用架构的发展。
单体架构
该架构指的是应用程序系统的所有数据存储只需要一个MySQL实例,就能满足数据的写入和读取需求。
单体架构
该架构适用于初期的小型应用程序,如果不断发展成长为大型应用程序,它就会出现如下应用瓶颈:
- 需要存储的数据量太大,超出一个MySQL实例的承受能力;
- 对数据库的读写操作量太大,超出一个MySQL实例的承受能力;
- 如果仅有的这个MySQL实例挂掉了,整个应用程序也就不能对外提供服务了。
主从架构
该架构主要解决的就是上面单体架构的出现的应用瓶颈的。已有的MySQL实例充当主库,负责写入操作,存储数据并同步从库。然后通过新增一个及以上的MySQL实例作为从库,来分担读取数据的压力。也可以在主库的MySQL实例挂掉之后,切换到从库来保证应用程序的高可用性。
主从架构
该架构适用于写少读多的场景,如果出现大量的写入操作,就会出现如下应用瓶颈:
- 对数据库的写操作量太大,超出一个MySQL主库实例的承受能力;
- 需要存储的写入数据量太大,超出一个MySQL主库实例的承受能力。
分库分表
对于单体架构和主从架构都遇到过的写入瓶颈和存储瓶颈时,可以通过分库分表来解决,它分为垂直拆分和水平拆分。
- 垂直拆分:就是专库专用,按照不同的业务对数据表进行分类,发布到不同的数据库上。
垂直拆分
这种拆分方式,能更清晰的对模块进行划分,但最终还是会存在单张表的大数据量,引起数据库存储瓶颈的问题。
- 水平拆分:就是将一张数据表按照某种规则进行拆分,拆成多张表,每个表中存储一部分数据,分别放到不同的数据库中。
水平拆分
这种拆分方式,能够解决垂直拆分存在的单表大数据量问题。
因此,垂直拆分和水平拆分在实际应用中,可以结合使用,优势互补。
作者:杨工,北京互联网公司在职JAVA开发,专注分享写作干货。欢迎关注我,期待你的点赞评论。