news 2026/10/16 8:46:44

主从同步原理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
主从同步原理

一、简单介绍读写分离和主从架构

主库负责写,从库负责读;一主多从,读写分离,用多个从库分担读压力。

二、原理

MySQL 主从复制的核心是二进制日志 binlog。binlog 记录数据库中的所有变更操作,主要包含 DDL(数据定义语言)和 DML(数据操控语言)。

① 主库在事务提交时,通过两阶段提交把数据变更记录到 binlog 中;

② 从库的 IO 线程连接主库,主库的 dump 线程将 binlog 发送给从库,从库将其写入本地的中继日志 Relay Log;

③ 从库的 SQL 线程读取 Relay Log,重放其中的事件,将变更应用到从库数据,最终与主库保持一致。

这里介绍一下两阶段提交(2PC)

2PC 就是事务提交时分 prepare 和 commit 两阶段

事务提交时:

┌─────────────────────────────────────────┐
│ 阶段一:prepare(准备阶段) │
│ ① 写 redo log,状态标记为 prepare │
│ ② InnoDB 告诉 Server 层:"我准备好了" │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ 阶段二:commit(提交阶段) │
│ ③ 写 binlog │
│ ④ 把 redo log 状态改为 commit │
│ ⑤ 事务提交完成 │
└─────────────────────────────────────────┘

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/16 8:45:29

毫米波雷达点云静态杂波滤除:Matlab完整链路与CFAR实践

简介:面向车载毫米波雷达信号处理与目标检测学习者,这份资源围绕静止目标(静态杂波)滤除这一关键问题,提供配套代码与实测ADC回波数据,适合正在研究动目标检测、杂波抑制或Matlab仿真实践的读者。压缩包共3…

作者头像 李华
网站建设 2026/10/16 8:45:20

电商大数据挖掘实战:从数据到销量提升的全流程指南

这几年我接触过不少电商团队,每次提到“大数据挖掘”,大家的第一反应往往不是兴奋,而是发懵。有人觉得那是算法工程师的专属活,有人觉得必须烧钱搭一套数据中台才配谈,还有人说我们店铺一天就几百单,挖什么…

作者头像 李华
网站建设 2026/10/16 8:44:31

囤片不翻车:Streambert 下载队列暂停取消与失败重试完整实操

囤片不翻车:Streambert 下载队列暂停取消与失败重试完整实操 【免费下载链接】streambert A cross-platform Electron Desktop App to stream and download any Movie, TV Series or Anime in the World. Zero Ads and Tracking 项目地址: https://gitcode.com/Gi…

作者头像 李华
网站建设 2026/10/16 8:41:58

初步认识mqtt

什么是MQTT MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上&#xff0…

作者头像 李华
网站建设 2026/10/16 8:39:34

@Transactional事务管理详解:七类常见失效场景与排查实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华