java面试一日一题:说下mysql中的binlog

大家好,我是北漂程序员,欢迎关注公众号:北漂程序员

问题:请讲下mysql中的binlog

分析:该问题主要考察对mysql中binlog的理解及使用场景?

回答要点:

主要从以下几点去考虑,

1、什么是binglog?

2、binlog的使用场景是什么?

 

在mysql中经常听到binlog,所谓binlog指的是二进制日志文件,用来记录mysql中的DDL、DML语句。该文件有三种记录的格式或者说工作模式,

row  记录每一行数据被修改的情况,优点是清晰的记录每一行数据被修改的细节,缺点是binlog日志文件过大;

statement  记录每一行数据被修改的sql,优点是不需要记录每一行数据的修改情况,文件大小没有row的那么大,缺点容易出现主从不一致;

fixed  是row和statement两种方式结合。

 

binlog经常用在主从复制中,在主节点和从节点之间拷贝的内容就是binlog文件中的内容,主节点在开启binlog后,在主从复制过程中通过网络把主节点的binlog文件传输到从节点,从节点会执行接收到的binlog文件中的内容,达到主从数据一致的效果。在实际生产环境中,经常会出现主从数据不一致的情况,主要有以下原因,

1、网络延迟;

2、写主节点,读从节点,由于从节点要同步主节点的binlog,会因为时间前后关系,造成不一致;

要解决主从不一致的情况,可以有下面的方式供参考,

1、主从复制配置成半复制,即要等到从节点成功执行后主节点再返回写成功;

2、从节点只做备份使用,强制读主节点;

3、程序允许一定时间的数据不一致情况;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值