• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

MySQL数据同步中的Binlog

极客笔记 多啦H梦 8个月前 (08-15) 436次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

MySQL 的 Binlog 是用来做 POINT-IN-TIME 的恢复和主从复制的,由数据库上层生戚,是 SQL 执行的逻辑日志,在事务提交完成后进行一次写入 。

Binlog 有如下 3 种格式 。

1 ) Statement

MySQL 的默认 Binlog 格式 。 每一条会修改数据的 SQL 都被记录到 bin-log 中, Slave 在复制的时候 SQL 进程会解析成和原来 Master 端执行过的相同的 SQL 后再次执行。

此格式产生 的日志量 比较少,能够节省 I/O 和存储资源,日志具有较高的可阅读性 。

但其需要在记录语句信息的同时也记录语句执行时的上下文信息,以保证在 Slave 端重放时能够得到和 Master 端同样的结果 。

此外,并非所有的 UPDATE 语句都能够被复制,尤其是在包含不确定操作的时候, 并且 Slave 的数据表必须和 Master 的保持一致 。

2) Row

日志中会记录每一行数据被修改的形式,然后在 Slave 端再对相同的数据进行修改 。 其不需要记录语句执行的上下文信息,但是需要记录每一条记录的改动,因此当受影响的记录很多时 , 日志量会非常大 ;由于加密,日志的可阅读性较低 。

3 ) Mixed

Statement 和 Row 的 结合 。 会根据执行的每一条具体的 SQL 语句来区别对待记 录 的日志形式 ,也就是在 Statement 和Row 之间选择一种 。


丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:MySQL数据同步中的Binlog
喜欢 (0)
[247507792@qq.com]
分享 (0)
多啦H梦
关于作者:
热爱开源,热爱分享,谢谢大家的资瓷!

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00