复制方式对比
除了异步复制和增强半同步复制之外,介于它们之间其实还有一种复制方式,叫半同步复制,只是从MySQL 5.7开始,逐渐被增强半同步所替代。那么这三种复制方式之间有什么异同呢?请参考如下表格异步复制
在传统的复制中,binlog 的复制是异步的,啥时候复制到从库,以及是否复制成功,MySQL 是不管的,存在丢失数据的风险:半同步复制
半同步复制的执行步骤如下:1、SQL 解析,会话T1(insert into t1 values(1000););
2、存储引擎处理;
3、写 binlog;
4、提交至存储;
5、等待从库成功接收 binlog 的返回信号;6、反馈至客户端。
这种同步方式的最大缺点是会出现丢失数据的风险,在步骤 4 之后,主库出现会话 T2(select * from t1;),可以读取到 1000 这个值,但如果此时步骤 5 失败,从库是不能成功接收到 1000 这个值的,也就意味着表 t1 的 1000 在从库是丢失的。增强半同步复制
增强半同步复制的执行步骤如下:1、SQL 解析,会话 T1(insert into t1 values(1000););
2、存储引擎处理;
3、写 binlog;
4、等待从库成功接收 binlog 的返回信号;
5、提交至存储;
6、反馈至客户端。
增强半同步复制,号称无损半同步复制。在步骤 3 之后,如果主库出现会话 T2(select * from t1;),是读取不到 1000 这个值的。如果步骤 4 失败,主从都一样,不能成功提交 1000 这个值,确保数据的一致性。网友回复
如何编写一个chrome插件实现多线程高速下载大文件?
cdn版本的vue在网页中出现typeerror错误无法找到错误代码位置怎么办?
pywebview能否使用webrtc远程控制共享桌面和摄像头?
pywebview6.0如何让窗体接受拖拽文件获取真实的文件路径?
如何在linux系统中同时能安装运行apk的安卓应用?
python有没有离线验证码识别ocr库?
各家的ai图生视频及文生视频的api价格谁最便宜?
openai、gemini、qwen3-vl、Doubao-Seed-1.6在ui截图视觉定位这款哪家更强更准?
如何在linux上创建一个沙箱隔离的目录让python使用?
pywebview如何使用浏览器自带语音识别与webspeech 的api?