DBAtlas · 数据库运维图谱

1197: Multi-statement transaction required more than 'max_binlog_cache_size'(多语句事务所需空间超过了 'max_binlog_cache_size')

MySQL

含义

单个事务生成的 binlog 数据超过了 max_binlog_cache_size 定义的内存/缓存限制。该事务无法放入二进制日志,因此失败并被回滚。

原因

超大事务(一次性 INSERT/UPDATE/DELETE 数百万行,或巨大的批量加载)占满了 binlog 缓存。在启用二进制日志(复制/时间点恢复)时,大事务很容易超出此限制。

解决方法

将大事务拆分为小批次;每批之后 COMMIT。如果确实无法避免大事务,增大 max_binlog_cache_size(必要时也增大 binlog_cache_size)。在 ETL/批量加载中,带中间 COMMIT 的分块加载既能避免此错误,也能避免长时间持有锁。

在 DBAtlas 中打开 →

同一数据库的其他条目