说一下MySQL主从复制的原理?( 二 )

(2) ROW 格式(行模式,诞生于 MySQL 5.1):在这种格式下,binlog 记录的是每一行数据更改的具体内容 。

  • 优点:能够精确地记录数据的变化,避免了 STATEMENT 格式中的环境依赖问题,提供了更强的一致性保证 。
  • 缺点:日志文件可能会比 STATEMENT 格式大,因为记录了每一行的详细变化 。此外,ROW 格式的日志在进行大量数据更新时可能会导致更高的 I/O 开销 。
(3) MIXED 格式(混合模式):在这种格式下,binlog 可以根据具体的 SQL 语句和操作自动选择使用 STATEMENT 或 ROW 格式 。
  • 优点:结合了 STATEMENT 和 ROW 格式的优点,能够在保证一致性的同时尽可能地优化日志大小和复制性能 。
  • 缺点:由于混合使用了两种格式,可能需要更复杂的管理和监控 。在某些特定情况下,MIXED 格式可能无法达到最优的性能或一致性 。
五、主从复制模式MySQL 中主要有以下两种主从复制的模式,分别是异步复制和半同步复制 。
(1) 异步复制:MySQL 主从复制中最常见和默认的模式 。在异步复制模式中,主服务器将数据修改操作记录到二进制日志(Binary Log)中,并将日志传输给从服务器 。从服务器接收到二进制日志后,会异步地应用这些日志进行数据复制 。
  • 优点:它的优点是及时响应给使用者,主服务器不会受到从服务器的影响而等待确认 , 可以提高主服务器的性能 。
  • 缺点:由于是异步复制,可能存在数据传输的延迟,且从服务器上的复制过程是不可靠的 。如果主服务器故障,尚未应用到从服务器的数据可能会丢失 。
(2) 半同步复制:半同步复制是 MySQL 主从复制中的一种增强模式 。在半同步复制模式中,主服务器将数据修改操作记录到二进制日志,并等待至少一个从服务器确认已接收到并应用了这些日志后才继续执行后续操作 。
  • 优点:可以提供更高的数据一致性和可靠性 , 确保至少一个从服务器与主服务器保持同步 。如果主服务器故障,已经确认接收并应用到从服务器的数据不会丢失 。
  • 缺点:由于半同步复制需要等待从服务器的确认,因此相对于异步复制,会增加一定的延迟 , 可能会影响主服务器的性能 。
如果对数据一致性和可靠性要求较高 , 可以考虑使用半同步复制;如果对延迟和主服务器性能要求较高,可以继续使用异步复制,根据实际需求调整复制模式 。
小结MySQL 主从复制用于多个数据库服务器之间的数据同步,它可以提供高可用性、提高数据库整体性能和吞吐量,以及可以进行数据备份和数据库恢复 。MySQL 主从复制是通过 bin log 实现的 , 主服务写入操作会同时添加到 bin log 中,而从数据库定期拉取主数据库的 bin log,然后将拉取的数据存放到自己的 relay log 中,之后再由单独 SQL 线程将数据写入到从数据库中 , 此时 MySQL 的主从同步就完成了 。

【说一下MySQL主从复制的原理?】


推荐阅读