主从复制的方式

主从复制分为:异步复制,半同步复制和全同步复制

异步复制: 是MySQL默认的复制模式,主库在执行完客户端提交的事务之后会立刻将结果返回给客户端,并不关心从库接收的结果,这样就会导致当主数据库因为某些原因宕机之后从数据库可能没有同步到主数据库的数据,导致主从数据不一致,甚者如果将从数据库强制转换为主数据库,可能导致数据丢失

优点:返回客户端无延迟

缺点:主从数据不一致,数据丢失

半同步复制: 半同步复制解决了主从数据库不一致的问题,原理是只有当至少一个从数据库接收到并且写入到read log 日志中之后才会返回给客户端接收结果,这样带来的问题是至少会带来一个 TCP/IP的往返时间的延迟

优点:保证主从数据库的最终一致性

缺点:返回客户端有延时

全同步复制: 当所有的从库接收到主数据库的数据并且执行完了其中的事务之后才会给客户端返回

优点:主从数据库的数据强一致性

缺点:耗费性能

并行复制: 就是在半同步复制的基础上从数据库会在内部有多个SQL线程去将relay log中的数据写入到数据库中,因为5.6x版本之前一直是单线程的,因此产生主从延迟的几率会很大,现在多线程处理之后,能最大可能的减少主从延迟的几率

主从复制的原理

数据库将用户的请求通过工作线程来将数据写入到数据库中然后在写入到 binlog 日志中

binlog日志详细记录了数据的操作信息

主数据库会有一个IO线程将binlog日志中的数据同步到从数据库的relay日志中

从数据库再通过自己数据库内的SQL线程将 relay log 日志中的数据写入到数据库中

5.6X版本之前SQL线程是单线程的,IO线程支持多线程操作

5.7X版本之后SQL线程也支持多线程

mysql的主从复制优缺点_MySQL主从复制原理,超级详细的总结,看完全通了相关推荐

  1. mysql 主从复制讲解_MySQL主从复制详解

    前言: 在MySQL中,主从架构应该是最基础.最常用的一种架构了.后续的读写分离.多活高可用架构等大多都依赖于主从复制.主从复制也是我们学习MySQL过程中必不可少的一部分,关于主从复制的文章有很多, ...

  2. MySQL数据库安装-Windows10为例【超级详细安装过程(每一步的截图)、检测安装是否成功、登录数据库并查看版本号、将MySQL添加到环境变量中、在命令行窗口操作数据库】

    哈哈,这是在哔哩哔哩网站上 看的 MySQL安装步骤. 我安装的时候,截截图,希望对大家 有所帮助. 链接:https://pan.baidu.com/s/1fKFQCVHMQOmbg84UyGrKB ...

  3. mysql 主从的作用_MySQL主从复制作用和原理

    什么是主从复制 主从复制是用来建立一个和主数据库完全一样的数据库环境,称为从数据库:主数据库一般是准实时的业务数据库. 主从复制的作用 做数据的热备 作为后备数据库,主数据库故障后,可切换到从数据库继 ...

  4. mysql主从复制(master-slave)_mysql主从复制------Master-Slave搭建及注意事项

    前言 关于mysql主从复制的原理实际上是很通俗易懂的,可是,在实际的搭建这个结构的时候,仍是会遇到不一样的状况的.因而下面介绍的是搭建Master-Slave的操做及注意事项,本文不含数据库的调优参 ...

  5. mysql主备模型_MySQL主从复制 - 基于二进制日志(理论篇)

    mysql日志类型 1    二进制日志 2    事务日志 3    一般查询日志 4    中继日志 5    慢查询日志 二进制日志 二进制日志通常记录的是可能潜在引起数据库发生改变的操作,每一 ...

  6. linux mysql主主复制_MySQL主从复制与主主复制

    1.简介 MySQL作为世界上使用最为广泛的数据库之一,免费是其原因之一.但不可忽略的是它本身的功能的确很强大.随着技术的发展,在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求.此时 ...

  7. mysql 未找到命令_MySQL主从复制配置说明,一文教你搞懂数据库主从复制

    一,MySQL主从配置原理 1. mysql支持的复制格式 基于语句复制(STATEMENT) (优点)基于statement复制的优点很明显,简单的记录执行语句同步到从库执行同样的语句,占用磁盘空间 ...

  8. mysql 主从复制介绍_MySQL 主从复制介绍

    一.MySQL 主从复制简介 (1) MySQL 主从复制通过逻辑的 binlog 日志复制到要同步的服务器本地,然后由本地的线程读取日志里面的 SQL 语句,重新应用到 MySQL 数据库中 (2) ...

  9. mysql driver 读写分离_Mysql主从复制和读写分离实践

    1.主从复制 原理 MySQL之间数据复制的基础是二进制日志文件(binary log file).一台MySQL数据库一旦启用二 进制日志后,其作为master,它的数据库中所有操作都会以" ...

最新文章

  1. 程序员的日常,过于真实 | 每日趣闻
  2. Linux进程的创建函数fork()及其fork内核实现解析
  3. java类的完整生命周期详解
  4. Mybatis多条件直接查询Param注解版
  5. cad填充图案乱理石_CAD软件中如何自定义CAD填充图案?
  6. linux下恢复误删文件
  7. 5.Loops and List Comprehensions
  8. guid java_JAVA实现生成GUID的方法
  9. python timer 死掉_Python timer定时器两种常用方法解析 Python中如何在一段时间后停止程序...
  10. html列表按时间排序代码_把 Linux 上的文件列表和排序玩出花来 | Linux 中国
  11. SQL Server 数据库身份认证以及包含数据库
  12. 计算机技术中,下列的英文缩写和中文名字的对照中,正确的是,计算机技术中,下列的英文缩写和中文名字的对照中。正确的是(  )。 a.cad——计算机辅助制造b.cam——计...
  13. Python实现简单命令行版《中国象棋》不使用第三方库
  14. 原创|批处理实现MicroUSB传输速度测试工具
  15. 社会网络分析能干什么?
  16. 百度收录提交软件-百度批量收录提交入口工具免费
  17. java获得指定时间的前几天或后几天是哪一天
  18. Nacos+Gateway503错误,No servers available for service
  19. Docker官方教程
  20. WPF界面MahApps.Metro之应用

热门文章

  1. PowerDesigner-快速入门(极简教程)
  2. 【计算机网络复习 数据链路层】3.5.2 ALOHA协议
  3. Unity 基本操作
  4. get和post的联系与区别
  5. mysql怎么禁止远程连接_mysql如何设置禁止远程连接
  6. python取数字第一位数_python基础:8.切片和缩进
  7. 更新node_kubernetes证书更新
  8. anaconda+cuda+cudnn+pytorch安装踩坑大全
  9. Opencv数据符号说明
  10. puppeteer( Nodejs 版 selenium )快速入门