binlog的三种模式以及特点

binlog二进制日志文件有三种模式:

  • 语句模式
  • 行模式
  • 混合模式

statement语句模式:

也就是当delete删除一百行数据的时候,binlog只记录那一句delete SQL语句,(而如果是redolog删除一百行,就会在日志中,写一百行)。节省IO,提高性能。但是正因为只有SQL语句,当进行主从同步的时候,master上同步,也就是执行这些SQL,其中特殊函数功能的SQL执行时,容易出现问题。

row行模式:

每进行一次数据操作都会详细的记录数据前后具体变化,正因为这样,那么假如说删除十万行数据,就写入日志十万次,会导致binlog非常大,主从同步的时候,会占用大量IO、急剧降低系统IO。解决办法就是通过set sql_log_bin来解决,让删除语句不传下从库,然后从库再删除表(setsql_log_bin=0就是不让语句记录到binlog中,删除语句没有记录到日志中,所以从库不删除内容)

混合模式:

混合模式我觉得就是针对SQL中是否有函数出现的一种模式吧,因为语句模式记录的带函数的SQL可能在master上执行不了,那么就选择行模式,详细记录数据操作前后的变化;而对于一些简单的SQL就使用语句模式,这样在保证主从同步可以成功的同时,又减少了binlog的大小,从而降低系统IO的负载。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值