MySQL 架构深度解析

一、主从复制

1.1 几种常见的主从复制模型

主要有三种:

1. 同步复制

性能差,可用性也差,一旦一个从库出现问题都会影响到业务

2. 异步复制(默认模型)

MySQL 主库提交事务的线程不会等待 binlog 同步完成就会返回客户端结果,一旦主机宕机,数据就会发生丢失

3. 半同步复制

MySQL 5.7 版本之后增加的一种复制方式,介于两者之间,事务线程不用等待所有的从库都完成复制,只要有一部分复制成功响应回来就行,即使主库宕机,至少还有一个从库有最新的数据,不存在数据丢失的风险。


二、分库分表

2.1 垂直分库分表

核心概念

根据不同的业务功能/模块,将数据按表结构或库结构进行拆分。

垂直分库

将不同业务模块的表拆到不同数据库中

垂直分表

将一张表中的列划分为多个子表,按字段分类存储

2.2 水平分库分表

核心概念

把相同结构的数据,按一定规则划分到多个库或表中。

水平分表

将一张表的数据行按规则拆分到多个表中

水平分库

不仅拆表,还把多个分表分布到不同数据库中