首页 > 数据库 >mysql 同步 && 半同步 && 异步的区别

mysql 同步 && 半同步 && 异步的区别

时间:2024-04-09 09:33:37浏览次数:25  
标签:异步 同步 数据库 写入 复制 && mysql

目录

mysql 同步 && 半同步 && 异步的区别

概述

在MySQL数据库中,同步、半同步和异步是用来控制数据复制的方式。数据复制是将一个数据库(称为主数据库)的数据复制到另一个数据库(称为从数据库)的过程。在这篇文章中,我们将详细介绍如何实现MySQL的同步、半同步和异步复制。

同步复制

同步复制是指在主数据库上的每个事务都要等到所有从数据库确认写入完成后才能提交。这种方式保证了数据的一致性,但是会导致主数据库的性能下降。

同步复制的流程

下面是同步复制的流程:

步骤 动作:
1 主数据库写入事务
2 主数据库等待所有从数据库确认写入
3 从数据库接收写入请求
4 从数据库确认写入完成
5 主数据库提交事务
2.2 实现同步复制
要实现同步复制,需要在MySQL的配置文件中进行相应的配置。以下是配置文件中需要添加的配置:

设置为同步复制模式

sync_binlog=1

# 设置从数据库复制时需要确认的副本数量
rpl_semi_sync_master_wait_for_slave_count=1

半同步复制

半同步复制是指在主数据库上的每个事务只需等待至少一个从数据库确认写入后就可以提交。这种方式可以在一定程度上保证数据的一致性,并且相较于同步复制,性能有所提升。

半同步复制的流程

下面是半同步复制的流程:
步骤 动作:
1 主数据库写入事务
2 主数据库等待至少一个从数据库确认写入
3 从数据库接收写入请求
4 从数据库确认写入完成
5 主数据库提交事务
3.2 实现半同步复制
要实现半同步复制,需要在MySQL的配置文件中进行相应的配置。以下是配置文件中需要添加的配置:

设置为半同步复制模式

plugin_load=semisync_master.so

# 设置从数据库复制时需要确认的副本数量
rpl_semi_sync_master_wait_for_slave_count=1

异步复制

异步复制是指主数据库写入事务后立即提交,不需要等待任何从数据库的确认。这种方式性能最好,但是会导致从数据库的数据与主数据库有一定的延迟。

异步复制的流程

下面是异步复制的流程:
步骤 动作:
1 主数据库写入事务
2 主数据库立即提交事务
3 从数据库接收写入请求
4 从数据库异步写入完成

实现异步复制

异步复制是MySQL的默认复制方式,不需要进行额外的配置。

总结

在本文中,我们介绍了MySQL的同步、半同步和异步复制的概念、流程以及实现方式。同步复制保证了数据的一致性,但会牺牲性能;半同步复制在一定程度上保证了数据的一致性,并提升了性能;异步复制性能最好,但会存在数据延迟的问题。根据实际需求,选择合适的复制方式可以提升数据库的性能和可用性。

标签:异步,同步,数据库,写入,复制,&&,mysql
From: https://www.cnblogs.com/liwenchao1995/p/18123151

相关文章

  • 基于SpringBoot+MySQL+SSM+Vue.js的生鲜在线销售系统(附论文)
    演示视频基于SpringBoot+MySQL+SSM+Vue.js的生鲜在线销售系统技术描述开发工具:Idea/Eclipse数据库:MySQLJar包仓库:Maven前端框架:Vue/ElementUI后端框架:Spring+SpringMVC+Mybatis+SpringBoot文字描述基于SpringBoot+MySQL+SSM+Vue.js的生鲜在线销售系统(附......
  • 基于SpringBoot+MySQL+SSM+Vue.js的招聘系统(附论文)
    演示视频基于SpringBoot+MySQL+SSM+Vue.js的招聘系统技术描述开发工具:Idea/Eclipse数据库:MySQLJar包仓库:Maven前端框架:Vue/ElementUI后端框架:Spring+SpringMVC+Mybatis+SpringBoot文字描述基于SpringBoot+MySQL+SSM+Vue.js的招聘系统(附论文),用户,管理员......
  • 6本值得推荐的MySQL学习书籍(有赠书福利)
    前言在DotNetGuide技术社区交流群和微信公众号后台经常收到小伙伴们的留言,让我出一期MySQL相关学习书籍的推荐文章。因此,今天我特意为大家精选了6本值得推荐的MySQL学习书籍,希望能够为大家提供一个全面系统的学习参考,助力大家在MySQL数据库领域的学习和实践道路上更进一步(......
  • Java,MySQL,JDBC,Jackson时区问题
    Java,MySQL,JDBC,Jackson时区问题今天做了一个测试,主要是测试给时区参数设置不同的值,会出现什么样的问题。数据库是UTC时区。JDBC连接是GMT+8。jackson默认是UTC。JVM时区GMT+8。从数据库中查询的时间是正确的的,jackson会将时间缩短8个小时。数据库是UTC时区。JDBC连接是GMT+......
  • 遵循这些MySQL设计规范,再也没被组长喷过
    分享是最有效的学习方式。博客:https://blog.ktdaddy.com/故事会议室里,小猫挠着头,心里暗暗叫苦着“哎,这代码都撸完了呀,改起来成本也太大了。”原来就在刚才,组长找到了小猫,说代码review过程中发现有些数据表模型设计得不合理,要求小猫改掉。小猫大概是设计了一个配置表,为了省事......
  • 【附源码】JAVA计算机毕业设计校园技术交流与信息分享系统(源码+mysql+文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在信息技术迅猛发展的当今时代,校园作为知识传播和技术创新的重要场所,急需一个高效的技术交流与信息分享系统来促进学术资源的整合和优化。随着互联网技......
  • 【附源码】JAVA计算机毕业设计校园二手交易(源码+mysql+文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着科技的不断进步和智能手机的普及,移动应用已成为人们生活不可或缺的一部分。特别是在校园内,学生们对于便捷的服务需求日益增长。在这样的背景下,校园......
  • 校园台球厅人员与设备管理系统的设计与实现|SpringBoot+ Mysql+Java+ B/S结构(可运行
    本项目包含可运行源码+数据库+LW,文末可获取本项目的所有资料。推荐阅读300套最新项目持续更新中.....最新ssm+java项目文档+视频演示+可运行源码分享最新jsp+java项目文档+视频演示+可运行源码分享最新SpringBoot项目文档+视频演示+可运行源码分享2024年56套包含java,ssm......
  • CTFHUB-技能树-Web前置技能-SQL注入-Mysql结构-UA注入
    技能树-Web前置技能-SQL注入-Mysql结构-UA注入文章目录技能树-Web前置技能-SQL注入-Mysql结构-UA注入UA注入手工注入判断注入点判断字段数判断回显字段数爆库名爆表名爆列名sqlmap爆库爆表爆列名爆数据UA注入UA注入,即User-Agent注入手工注入利用bp抓包,发送......
  • mysql 随机日期
     以下是两种不同的实现方法来生成一个随机日期:方法一:使用MySQL内置的日期函数SELECTDATE_ADD('1970-01-01',INTERVALFLOOR(RAND()*DATEDIFF('2100-01-01','1970-01-01'))DAY);使用RAND()函数生成一个0到1之间的随机数,将其与从1970年1月1日到2100年1月1日之间的天数相......