news 2026/5/21 12:11:37

MySQL Binlog 格式对比

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL Binlog 格式对比

# MySQL Binlog 格式对比

Binlog 是 MySQL 复制和数据恢复的核心。三种格式各有优劣,选错了会影响数据一致性。

三种格式

-- 查看当前格式SHOWVARIABLESLIKE'binlog_format';-- 三种值:-- STATEMENT(SBR)-- ROW(RBR)-- MIXED(MBR)

STATEMENT 格式(SBR)

-- 记录原始 SQL 语句-- Binlog 内容:INSERTINTOuser(id,name)VALUES(1,'Tom');UPDATEaccountSETbalance=balance+100WHEREid=1;

优点

- 日志量小(只存 SQL) - 节省磁盘空间 - 主从延迟相对小

缺点

-- 不确定函数在主从结果不一致INSERTINTOlog(created_at)VALUES(NOW());-- 主库 NOW() = 2024-01-01 12:00:00-- 从库延迟 5 秒执行,NOW() = 2024-01-01 12:00:05-- 主从数据不一致!-- 其他问题:-- LIMIT 不带 ORDER BY-- 存储过程/触发器-- UUID() 等不确定函数

ROW 格式(RBR)

-- 记录行变化(修改前 + 修改后)-- Binlog 内容:-- ### UPDATE `account`-- ### WHERE-- ### @1=1 (id)-- ### @2=500 (balance 修改前)-- ### SET-- ### @1=1-- ### @2=600 (balance 修改后)

优点

- 数据一致性最好(记录实际变化) - 不会受不确定函数影响 - 安全可靠

缺点

- 日志量大(大事务尤其明显) -- DELETE 100万条,ROW 格式要记录 100 万行的变化 -- STATEMENT 只记录一条 SQL - 无法从 binlog 直接看到 SQL(需要 mysqlbinlog --base64-output=DECODE-ROWS -v)

MIXED 格式(MBR)

MySQL 自动选择: - 一般情况用 STATEMENT(日志小) - 遇到不确定函数自动切换 ROW 是 STATEMENT 和 ROW 的折中方案

自动切换到 ROW 的情况

-- 包含 NOW()、UUID() 等函数-- 包含 LIMIT 没有 ORDER BY-- 使用存储过程/触发器/自定义函数-- UPDATE 中使用了不确定表达式

如何选择?

场景推荐格式
主从复制ROW(推荐)
数据恢复ROW
日志审计STATEMENT(可读性好)
磁盘空间有限STATEMENT
折中方案MIXED

结论:新项目一律用 ROW,数据一致性最重要。

查看 Binlog 内容

# STATEMENT 格式mysqlbinlog /var/lib/mysql/mysql-bin.000001# ROW 格式(需要解码)mysqlbinlog --base64-output=DECODE-ROWS-v/var/lib/mysql/mysql-bin.000001# 按时间范围mysqlbinlog --start-datetime='2024-01-01 00:00:00'--stop-datetime='2024-01-02 00:00:00'/var/lib/mysql/mysql-bin.000001# 按数据库过滤mysqlbinlog--database=mydb /var/lib/mysql/mysql-bin.000001

Binlog 清理

-- 自动清理:保留 7 天SETGLOBALexpire_logs_days=7;-- 手动清理PURGEBINARYLOGS BEFORE'2024-01-01 00:00:00';PURGEBINARYLOGSTO'mysql-bin.000010';-- 查看当前 binlogSHOWBINARYLOGS;

小结

格式一致性日志大小可读性推荐
STATEMENT不推荐
ROW推荐
MIXED折中

相关阅读:

  • [MySQL 主从复制原理]
  • [MySQL GTID 模式详解]
  • [MySQL 数据备份与恢复]
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/21 12:10:26

如何让用户在3秒内爱上你的网站?这3个技巧值得收藏

在数字时代,企业网站就是品牌的“线上门面”。研究表明,用户对网站的第一印象往往只需要0.05秒——也就是眨眼的一瞬间。在这电光火石之间,用户就已经决定了是留下来探索,还是果断点击关闭。很多企业主疑惑:为什么流量…

作者头像 李华
网站建设 2026/5/21 12:09:41

StreamCap终极指南:一键录制40+平台直播的免费开源工具

StreamCap终极指南:一键录制40平台直播的免费开源工具 【免费下载链接】StreamCap Multi-Platform Live Stream Automatic Recording Tool | 多平台直播流自动录制客户端 基于FFmpeg 支持监控/定时/转码 项目地址: https://gitcode.com/gh_mirrors/st/StreamCap…

作者头像 李华
网站建设 2026/5/21 12:04:06

微信好友检测工具:3分钟识别单向好友关系的实用指南

微信好友检测工具:3分钟识别单向好友关系的实用指南 【免费下载链接】WechatRealFriends 微信好友关系一键检测,基于微信ipad协议,看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFriends …

作者头像 李华
网站建设 2026/5/21 12:02:06

Layerdivider:3分钟完成PSD智能分层的终极图像处理工具

Layerdivider:3分钟完成PSD智能分层的终极图像处理工具 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 在数字设计领域,PSD分层处…

作者头像 李华
网站建设 2026/5/21 12:01:03

Zynq-7000双核异构实战:基于OpenAMP实现Linux+RTOS双系统工业控制

1. 项目概述:当工业控制遇上异构计算的“黄金搭档”在工业自动化、电力监测这些对实时性要求近乎苛刻的领域,工程师们常常面临一个经典的“鱼与熊掌”难题:系统需要强大的通用计算能力来处理复杂的上层业务逻辑(比如网络通信、数据…

作者头像 李华