MySQL日志
主从复制
- 数据库主从复制,读写分离,负载均衡,分库分表分别表达的什么概念?
- 看完这篇还不懂 MySQL 主从复制,可以回家躺平了 - 理论精
- MySQL主从复制读写分离,看这篇就够了!
- 小白都能懂的Mysql主从复制原理(原理+实操)
- Mysql主从复制

这幅图的load balance做在了业务层,而读写的路由逻辑由业务层在控制。
这幅图,则由一个通用的中间层解决了读写分离的问题,顺便也做了数据库的负载均衡,从这里看出读写分离是数据库负载均衡的一种解决方式
主从复制工作流程
异步复制
半同步模式。
不是 MySQL 内置的,从 MySQL 5.5 开始集成,需要 master 和 slave 安装插件开启半同步模式。
逻辑复制和行数据复制
在开发当中,我们应该尽量将业务逻辑逻辑放在代码层,而不应该放在 MySQL 中,不易拓展。
一般情况下,默认采用基于语句的复制,一旦发现基于语句无法精确复制时,就会采用基于行的复制。
| 语句(逻辑)复制 | 行数据(物理)复制 | |
|---|---|---|
| 特点 | 方式简单,二进制文件小,传输带宽占用小。 | 日志占用的空间大,传输带宽占用大。但更精确。 |
| 在从库更新不存在的记录时 | 不会失败 | 会导致失败,从而更早发现主从之间的不一致 |
| 更新一百万条数据 | 仅需要发送一条sql | 需要发送一百万条更新记录 |
| 执行的到底是什么(例如一条更新用户总积分的语句,需要统计用户的所有积分再写入用户表。) | 从库需要再一次统计用户的积分,而基于行复制就直接更新记录,无需再统计用户积分。 | 不需要执行查询计划 |
