标签:update 二进制 记录表 binlog row模式
1、$ mysqlbinlog mysql-bin.000559 > bin000559.sql
mysqlbinlog: unknown variable ‘default-character-set=utf8‘
解决方法:
加--no-defaults参数后可以解决
mysqlbinlog --no-defaults mysql-bin.000559 |less
2、因为binlog日志格式是ROW,查看row模式二进制日志的sql格式命令如下
mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000559 |less
3、业务binlog增加特别快,不到5分钟,写一个binlog,每个binlog 5OOM
分析binlog日志发现,频繁update一个表含有是mediumblob型
binlog日志模式为row模式,每次更新会记录表中所有列值,含有大字段的行更新频繁,导致binlog增长过快!
mysql5.6中已新增参数binlog_row_image,我已将压测服的该参数设置为minimal,表示binlog日志只记录修改的列而不是行中所有列的值,如果行中的BLOGs 字段并不是每次都更新,则不会记录。
前提条件是:这些大字段的值本身在实际更新时的频率不高。
实际压测发现,原来不到5分钟生成一个500M的binlog,现在是8~9分钟一个500M的binlog。
效果不是很明显,所以还需要程序端来优化
本文出自 “菜鸟地盘” 博客,请务必保留此出处http://yangjingangel.blog.51cto.com/8351501/1791019
标签:update 二进制 记录表 binlog row模式
原文地址:http://yangjingangel.blog.51cto.com/8351501/1791019