浅谈 MySQL 主从复制,优点?原理?
目录一. 主从复制概述二. 主从复制有什么优点三. 主从复制的原理四. 数据一致性问题4.1 同步复制4.2 异步复制4.3 半同步复制一. 主从复制概述既然是主从复制那么至少就应该有两台服务器一台作为主库(Master)一台作为从库(Slave)。主数据库会将自己的DDL(数据定于语言例如建库建表)与DML(数据操作语言例如增删改查)操作写成二进制日志文件发送给从库从库在接收到二进制日志文件之后自己在将文件中的命令执行一遍(也叫重做)将数据备份保存到自己的服务器内部从而使自己的数据与主库的数据保持一致。同时主库可以挂载多个从库向多台数据库服务器发送数据文件此外从库也可以作为其他数据库的主库实现链式复制。二. 主从复制有什么优点1实现读写分离主库主要用于做增删改操作从库大量用于查询操作降低了主库查询数据的访问压力2当主库出现故障或者宕机无法立刻恢复时可以迅速切换到从库继续对外提供服务保证业务不受到影响3当执行备份数据操作时因为备份数据库会加全局锁会进入只读状态导致增删改操作阻塞。所以可以将备份数据操作交给从库去做只让一个从库加上全局锁主库继续对外服务仍然可以进行增删改查所有操作避免主库备份数据加锁阻塞对业务产生影响三. 主从复制的原理MySQL 主从复制的核心就是根据二进制日志来完成的大致可以分为以下三步1当 Master主库执行了增删改或者DDL(数据定义语言)操作之后主库就会将所有的数据变更写入到二进制日志 binlog 文件中2然后当从库想要同步主库的数据时主库的二进制日志转储线程会将二进制日志文件的内容发送给 slave从库在读取发送二进制日志文件的过程中binlog 文件会加锁读取完毕之后会释放锁。slave 从库中的 IOThread 线程就会读取主库二进制日志文件 binlog 中的内容读取之后会将文件内的所有内容写入到自己的中继日志文件中3写入中继日志完毕后slave 从库中的另一个线程 SQLThread 会读取刚才的中继日志文件中的内容并在自己的服务器中执行一遍从而保证了从库数据与主库数据的一致性四. 数据一致性问题在MySQL中主要有三种方法用于处理主库与从库的数据一致性问题4.1 同步复制主库将自己做的更新写入 Binlog 日志文件后会等待数据更新同步复制到从库中并且已经在从库执行成功然后才能返回继续处理其它的请求。同步复制提供了最佳安全性保证数据安全数据不会丢失缺点是对性能有一定的影响因为要等待从库的同步响应结果响应期间无法做其他写入操作4.2 异步复制主库将自己最新作的操作或事务写入到 binlog 二进制日志文件之后不需要等待数据更新是否已经到达从库直接就可以继续处理外部的请求也就是说主库不知道从库何时会接收 binlog 文件并同步数据自己只负责将操作写入 biblog 文件。异步复制优点是提高了主库的写入能力能处理更多的请求缺点是如果主库宕机并且主库提交的事务尚未提交至从库那么新上位的主库就会丢失之前已经提交过的事务。4.3 半同步复制半同步复制就是对同步复制与异步复制的一个折中方案当从库做了数据更新之后需要等待至少有一台从库已经读取到数据并写入到了自己的中继日志中只要得到一台从库的响应就可以结束等待继续处理其他请求等待从库响应数量在MySQL5.7版本以后可以在配置文件中配置可以配置至少一台两台或多台。如果数量较大也会有一定的性能缺失如果数量较少数据同步效果不是很大实际工作需要折中考虑。

相关新闻

SATA控制器架构深度解析:从AHCI原理到嵌入式开发实践

SATA控制器架构深度解析:从AHCI原理到嵌入式开发实践

1. 从并行到串行:SATA控制器架构的演进与核心价值如果你拆开过一台十年前的台式机,大概率会看到一根又宽又扁的灰色排线,连接着主板和硬盘,那就是并行ATA(PATA)接口。它曾统治了PC存储接口数十年&#xff0…

2026/7/23 17:36:24 阅读更多 →
String 字符串不可变带来的好处是什么?

String 字符串不可变带来的好处是什么?

目录 一. 线程安全(数据安全) 二. 节约内存 三. 提高集合的存取效率 一. 线程安全(数据安全) 众所周知,String 字符串是默认被 final 修饰的,是不可变的,那么首先能想到的一个优点就是线程安全,String 是存放在堆中的&#xf…

2026/7/23 16:52:25 阅读更多 →
AI预测风险技术:从测试覆盖率到智能测试资源分配

AI预测风险技术:从测试覆盖率到智能测试资源分配

1. 项目概述:从测试覆盖率到AI预测风险的范式转移十年前我刚入行测试时,团队墙上永远挂着那个醒目的数字——"测试覆盖率98%"。直到某次线上事故后才发现,那些精心维护的测试用例覆盖的都是不会出错的代码,而真正复杂的…

2026/7/23 17:36:48 阅读更多 →

最新新闻

Python与数据库:SQLAlchemy实战指南

Python与数据库:SQLAlchemy实战指南

数据库操作是后端开发最核心的部分之一。在Python中,直接写原生SQL虽然灵活,但在项目变得复杂后,ORM(对象关系映射)能帮我们节省大量时间。SQLAlchemy是Python生态中最强大的ORM框架,这篇文章不讲太深的理论…

2026/7/23 18:06:25 阅读更多 →
死亡细胞修改器下载 及其用法

死亡细胞修改器下载 及其用法

下载链接 转存 避免丢失 《死亡细胞》风灵月影修改器:技术解析与功能详解 《死亡细胞》(Dead Cells)作为一款将Roguelite与银河恶魔城机制融合的硬核动作游戏,以其流畅的战斗、严苛的死亡惩罚和丰富的武器构筑受到核心玩家喜爱。…

2026/7/23 18:06:25 阅读更多 →
左上角角标NEW、最新CSS代码

左上角角标NEW、最新CSS代码

demo <!DOCTYPE html> <html><head><style>/*角标签&#xff0c;父元素必须设置position: relative;overflow: hidden;height: 大于120;width: 大于120px;&#xff0c;同时&#xff0c;角标标签内加入属性superscriptTitle"左上角标签文字内容&q…

2026/7/23 18:06:25 阅读更多 →
嵌入式以太网MAC中断与地址过滤:寄存器级配置与实战避坑指南

嵌入式以太网MAC中断与地址过滤:寄存器级配置与实战避坑指南

1. 项目概述与核心价值 在嵌入式网络开发中&#xff0c;尤其是基于MCU的以太网应用&#xff0c;直接操作硬件寄存器往往是实现高性能、低延迟通信的必经之路。很多开发者习惯于依赖现成的驱动库或HAL&#xff08;硬件抽象层&#xff09;&#xff0c;这确实能快速上手&#xff0…

2026/7/23 18:06:25 阅读更多 →
Centos7主机升级OpenSSH9.3版本

Centos7主机升级OpenSSH9.3版本

1、背景 因主机安全扫描的原因&#xff0c;Centos默认安装的是OpenSSH_7.4p1&#xff0c;为了解决安全漏洞需要升级OpenSSH版本。 升级方式如下&#xff1a; 1、通过下载OpenSSH源码编译安装&#xff1b; 2、预先在同一个操作系统环境制作RPM安装包&#xff0c;可以通过RPM安装…

2026/7/23 18:06:25 阅读更多 →
嵌入式ADC数字比较器与UART协同设计:硬件联动实现高效事件驱动系统

嵌入式ADC数字比较器与UART协同设计:硬件联动实现高效事件驱动系统

1. 项目概述与核心价值在嵌入式系统开发中&#xff0c;ADC&#xff08;模数转换器&#xff09;和UART&#xff08;通用异步收发传输器&#xff09;是两种基础且关键的外设模块。ADC负责将模拟信号转换为数字量&#xff0c;其数字比较器功能通过设置阈值范围&#xff0c;能够实时…

2026/7/23 18:05:25 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;从单点好评到指数级传播&#xff1a;AI副业主理人必须掌握的4层口碑渗透模型&#xff08;含ROI测算表&#xff09; 当AI副业主理人不再仅满足于单次服务交付&#xff0c;而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;AI写作开头钩子设计&#xff1a;为什么你的AI文案完读率不足18%&#xff1f;——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后&#xff0c;我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南&#xff1a;免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中&#xff0c;我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源&#xff0c;还是配置文件、证书等&#xff0c;都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下&#xff0c;但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP&#xff08;轻量级目录访问协议&#xff09;作为企业级身份认证的黄金标准&#xff0c;已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时&#xff0c;发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”&#xff0c;而是以可解释、可审计、可迭代的方式&#xff0c;赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻