当前位置:   首页国外主机资讯高性能MySQL:基于语句的复制

高性能MySQL:基于语句的复制

发布日期:2021-06-04 11:55 | 文章来源:百度文库

复制语句

  复制的原理

  我们已经介绍了复制的一些基本概念, 接下来要更深人地了解复制。让我们看看复制究竟是如何工作的,有哪些优点和弱点,最后介绍一些更高级的复制配置选项。

  基于语句的复制

  在MySQL 5.0 及之前的版本中只支持基于语句的复制( 也称为逻辑复制),这在数据库领域是很少见的。基于语句的复制模式下,主库会记录那些造成数据更改的查询,当备库读取并重放这些事件时,实际上只是把主库上执行过的SQL再执行遍。这种方式既有好处,也有缺点。

  最明显的好处是实现相当简单。理论上讲,简单地记录和执行这些语句,能够让主备保持同步。另一个好处是二进制日志里的事件更加紧凑,所以相对而言,基于语句的模式不会使用太多带宽。一条更新好几兆数据的语句在二进制日志里可能只占几十个字节。另外mysqlbinlog工具(本章多处会提到)是使用基于语句的日志的最佳工具。

  但事实上基于语句的方式可能并不如其看起来那么便利。因为主库上的数据更新除了执行的语句外,可能还依赖于其他因素。例如,同一条SQL在主库和备库上执行的时间可能稍微或很不相同,因此在传输的二进制日志中,除了查询语句,还包括了一些元数据信息,如当前的时间戳。即便如此,还存在着一些无法被正确复制的SQL.例如,使用CURRENT USER() 函数的语句。存储过程和触发器在使用基于语句的复制模式时也可能存在问题。

  另外一个问题是更新必须是串行的。这需要更多的锁有时候要特别关注这一点。另外不是所有的存储引擎都支持这种复制模式。尽管这些存储引擎是包括在MySQL 5.5及之前版本中发行的。

  可以在MySOL手册与复制相关的章节中找到基于语句的复制存在的限制的完整列表。

联系我们
关于使用场景和技术架构的更多咨询,请联系我们的销售和技术支持团队。
Yingsoo Host

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部