mysql binlog日志binlog_format

本文详细介绍了MySQL中binlog的三种格式:ROW,STATEMENT,MIXED,对比了它们各自的优缺点,并指导如何通过my.cnf配置文件或运行时命令修改binlog_format参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

binlog_format 查看:

show variables like 'binlog_format';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW   |
+---------------+-------+
1 row in set (0.01 sec)

binlog_format 有三种:ROW,STATEMENT,MIXID
我本地安装的是8.0版本,默认为MIXID.

修改配置方式:
找到my.cnf,修改binlog_format:

#ROW,每一行记录修改都会记录binlog,数据清晰,便于理解,但是日志量会非常大,增加IO负担
#STATEMENT,每一条会修改数据的SQL都会记录binlog,优点是日志量会减少,提高IO性能,缺点是slaver端会执行同样的SQL,为了保证一致性需要存储SQL执行的上下文信息,还有一些复杂的应用场景(存储过程、触发器、特殊命令)等,可能会出现问题
#MIXED介于ROW和STATEMENT之间,根据具体SQL区分对待来记录不同的日志
binlog_format=ROW

这种方式修改后需要重启mysql。

除此之外, 还有一种运行时修改binlog_format:

SET SESSION binlog_format = 'ROW';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值