复制方式对比
除了异步复制和增强半同步复制之外,介于它们之间其实还有一种复制方式,叫半同步复制,只是从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 这个值,确保数据的一致性。网友回复
js如何流式输出ai的回答并折叠代码块,点击代码块右侧可预览代码?
ai大模型如何将文章转换成可视化一目了然的图片流程图图表?
大模型生成html版本的ui原型图和ppt演示文档的系统提示词怎么写?
rtsp视频直播流如何转换成websocket流在h5页面上观看?
为啥coze会开源工作流agent coze studio?
如何检测网页是通过收藏夹打开的?
python如何实现类似php的http动态脚本请求处理响应代码?
js如何实现类似php的http动态脚本请求处理响应代码?
trae与solo有啥区别不同?
vue如何让ai动态生成问卷调查多步骤表单式收集基础信息自动规划执行任务?