从初级架构到中级架构原来有这么多次的升级,并且每一次的进阶都有其优缺点,文末还有对高级结构的理解,欢迎大家在评论区各抒己见~
MySQL简介
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB公 司开发,目前属于 Oracle 公司。
MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,使其成为了当前最受欢迎的关系型数据库之一。
MYSQL 架构演变
随着公司业务由初期访问量低、数据量低,稳步提升到后期高并发、数据量多,mysql 数据库的架构也在逐渐改变,由简到复杂。
备注:
主库读写,从库只读;
初级阶段
描述:
初期由于并发量以及数据量都比较低,不会太注重数据库方面的潜在问题,所以只提供单主。也类似直接申请 RDS 单节点服务。
优点:
- 架构简单
-
- 对运维人员易部署维护;
- 对开发人员易使用;
缺点:
- 无 HA;
- 备份需要考虑情况
-
- 逻辑备份在非高峰期间无影响;
- 物理备份在极短时间下会锁住全库(数据量小,数据文件不多);
- 无伸缩性:若突然请求量/数据量激增,极容易产生性能故障导致生产故障;
初中级阶段
描述:
当业务达到一定量级,开始考虑数据安全性,同时读写请求开始增多,请求也开始增多,主从架构就随之适合(写请求过多导致单实例扛不住,或写请求过多导致主从延迟,可采用分片的方案,每个分片也均是主从架构。分片问题不在本文中深度讲解)。
优点:
- 可根据读请求压力对从库进行扩容;
- 异地容灾;
- 可单独选取一个从库做备库
- a. 不影响线上业务;
- b.该备库是否对外提供服务视该备库的压力以及库表多少等情况而定;
- c. 可提供内部的离线查询(即不对外的业务);
- 可读写分离;
缺点:
- 无 HA