mysql二进制日志格式化_Mysql 二进制日志及格式选择

331003fc2abf3e385dffbb06839e4756.png

服务层日志与Mysql使用的引擎(innodb、myisam)无关,

存储引擎层日志与引擎有关。

d75cdec65f3fc07cca563510517791f1.png

基于段的格式:

bf69a9aa1169c8090a150d582728ded7.png

2113d93429adc22864a9bc4e402980aa.png

d8c279b0dc1cc1705fb290799101772c.png

段格式记录的是所执行的SQL语句。

通过 “ mysqlbinlog xxx文件  ” 命令可以查看binlog内容,下面是段格式binlog的内容,可以清楚看到执行的sql语句。

2a261d42db9ce5024690c583d65a499c.png

基于行的格式:

c700280e55b3c4d7526afd581a831ea1.png

28638df1c638c914eaa9c1b4c75c58e3.png

be428de145b99b65c889b4767c20d879.png

Row格式带来的额外好处:

e50dc3adacfc72f42709dc1db5282957.png

ad46c7d378e0f86f7170ce27503048f4.png

FULL:          记录一行中所有的字段,不管该字段是否被修改。

MINIMAL:    仅记录一行中产生了修改的字段。

NOBLOB:    类似于FULL,只是当BLOB或TEXT字段未被修改时,BLOB或TEXT字段不会被记录。

通过 “ mysqlbinlog -vv xxx文件  ” 命令可以查看 MINIMAL 类型的Row格式的binlog内容:

a5dea32488970b17bb9f2f777cd55863.png

我们可以看到MINIMAL类型,只记录了进行了修改的@3这个字段的数据。

混合日志格式:

c109786cdca13b60bac8411ca862d7bc.png

混合日志默认情况都会使用 基于段的格式去记录,

但如果是碰到SQL中使用了不确定函数(类似于UUID()函数),或者数据库隔离级别被修改成了读已提交 或读未提交,则会使用基于ROW的格式。

如果隔离级别被修改成了读已提交 或读未提交,那么混合日志格式就基本上都会去使用基于ROW格式去记录了。

建议:

同一IDC机房:  使用ROW格式,并配置MINIMAL

不同机房:    使用混合日志格式

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值