您的当前位置:首页 >数据库 >阿里二面:聊聊 MySQL 主从同步方案的优缺点 正文
时间:2025-11-04 08:06:13 来源:网络整理编辑:数据库
大家好,我是君哥。今天来聊一聊 MySQL 主从架构。MySQL Replication 是 MySQL 官方提供的主从同步方案,用于将 MySQL 主库的数据同步到从库中,从库可以供应用程序读取数据
大家好,阿里我是面聊君哥。今天来聊一聊 MySQL 主从架构。同步
MySQL Replication 是缺点 MySQL 官方提供的主从同步方案,用于将 MySQL 主库的阿里数据同步到从库中,从库可以供应用程序读取数据。面聊
1.简介Replication 是同步目前 MySQL 使用最多的灾备方案,主要有 3 个作用:
读写分离,缺点写主库读从库。阿里这样大大降低主库的面聊负载,即使主库出现类似锁表之类的同步情况,也不影响应用读取数据。缺点实现灾备,阿里当主库发生故障时,面聊可以方便地把从库切换成主库,同步实现高可用(HA)。水平扩展,当应用访问量导致数据库 I/O 高时,可以通过水平扩展的方式将降低单机负载,降低磁盘 I/O。下面是一个 MySQL Replication 的案例。
图片
在上面的例子中,b2b供应网有一个主库,三个从库,通过 Replication,主库生成 events 的 binlog 发给 slave,Slave 将收到的 binlog 拷贝到 relaylog,然后解析 relaylog 中的命令进行执行,实现主从数据同步。
2.同步原理MySQL 通过 binlog 实现同步过程中,会用到 3 个线程:
IO thread: 从库执行 START SLAVE 语句时,会创建一个 IO thread,负责连接主节点,请求更新的 binlog,接收到 binlog 后写入 relaylog;dump thread:主库接收到从库的 binlog 请求后,创建一个 dump thread,把 binlog 同步给从库;sql thread:读取 relaylog,解析 relaylog 的命令并执行,将数据落库。整个同步流程如下:
图片
前面讲到,主从同步有读写分离、实现灾备、水平扩展等优点。那主从同步有哪些缺点呢?最大的缺点就是主从延迟。
导致主从延迟的主要原因如下:
从库所在机器性能差,命令执行慢;从库查询压力大,消耗了大量 CPU 资源,影响了 sql thread 执行;主库有大事务(比如大表DDL),这个事务里面执行的 sql 比较多,一方面主库需要等待事务执行完成才能写入 binlog,另一方面同步到从库和在从库执行都需要花费很多时间,导致主从延迟;数据库版本低,在 MySQL 5.6 之前,只支持单线程复制,效率比较低;表上无主键,主库利用索引更改数据,从库只能用全表扫描。要解决主备延迟的问题,IT技术网可以考虑下面方法:
优化业务逻辑,避免使用大事务,或者大事务场景尽量放在业务低峰期执行;提高从库所在机器的性能;保障网络性能,避免网络延迟;引入 semi-sync 半同步复制,配合异步复制。主从同步的第二个缺点就是数据丢失。
MySQL 有 3 种主从复制方式:
异步复制:主库执行完客户端提交的事务后立即将结果返回给客户端,不关心从库是否同步完成。这种方式很容易发生数据丢失,比如主库的日志还未同步给从库就宕机了,这时需要在从库中选择一个作为新主库,之前未同步完成的数据就丢失了;全同步复制:主库执行完客户端提交的事务并且等待从库也执行完成数据同步后再把结果返回给客户端。这种方式能够保证不丢失数据,但是数据库的性能会受到影响;半同步复制:是介于全同步和异步复制的一种方式,主库至少等待一个从库接收 binlog 并成功写入到 relaylog 后给客户端返回结果。主库不需要等待所有从库返回 ACK。MySQL 中默认采用异步复制,这样很容易导致数据丢失。一个好的方式就是采用 semi-sync 半同步复制插件。不过 semi-sync 存在一个问题,主库写数据到 binlog 后执行 commit,才会给从库同步数据。如果从库还没有返回 ACK,主库发生了宕机,从库还没有写完 relaylog 就被选择为主库,也会发生数据丢失。
为了解决这个问题,MySQL 5.7 引入了增强版半同步复制。主库写入数据到 binlog 后,就给从库进行同步,直到至少一个从库返回给主库 ACK,主库才会进行 commit 操作。
4.总结本文介绍了 MySQL 主从同步方案的优缺点,希望能对你使用和理解 MySQL 有所帮助。
将MOV格式视频转换为MP4的简单方法(以MOV格式的视频为例,教你一步步将视频转换为MP4格式)2025-11-04 07:19
探索Booxi86mlplus的卓越性能与优势(领先技术,出色表现——一款完美的阅读体验)2025-11-04 07:18
电脑蓝屏(探索电脑蓝屏的根源,解决你的困扰)2025-11-04 07:17
CGI装系统教程(以CGI技术为基础,快速搭建自己的网站)2025-11-04 07:15
适马30mmf1.4镜头的魅力与表现(探索适马30mmf1.4镜头的优点和应用领域)2025-11-04 07:14
海尔BCD649WDCE洗衣机的优势与特点(高效节能、智能洗涤、超大容量,让你的洗衣体验焕然一新)2025-11-04 06:15
硬盘再生器修复教程(一步一步教你如何使用硬盘再生器修复损坏的硬盘)2025-11-04 06:07
酷睿4代i74710H(解析第四代i7处理器的性能与创新)2025-11-04 05:38
以U大师安装XP教程,快速轻松完成系统安装(使用U大师工具,快速安装XP系统,详细步骤全面解析)2025-11-04 05:36
探索ThinkPadL330的性能与可靠性(一款高效稳定的商务笔记本电脑)2025-11-04 05:32
如何更换声卡驱动?(详细教程和注意事项)2025-11-04 08:05
Lumia640拍照的出色表现(一部旗舰级手机体验)2025-11-04 07:57
使用51系统重装U盘的详细教程(一步步教你轻松重装系统,让电脑焕然一新)2025-11-04 07:55
以新U盘装系统教程(详细步骤图文指导,轻松安装您的新系统)2025-11-04 07:43
解决电脑XP系统错误的重装方法(快速恢复电脑XP系统并修复各种错误问题)2025-11-04 06:52
探索TG801229eds的卓越性能和创新设计(一款引领科技潮流的全能手机)2025-11-04 06:44
SP3系统硬盘安装教程(轻松掌握SP3系统硬盘安装的方法和技巧)2025-11-04 06:41
如何使用启动盘进行系统设置(详解启动盘的制作和使用方法)2025-11-04 06:18
苹果电脑密码错误解决方案(掌握密码恢复技巧,快速解决苹果电脑密码错误问题)2025-11-04 05:46
TP-LinkWR886N(全面解析TP-LinkWR886N的功能和性能)2025-11-04 05:27