版权声明:本文为CSDN博主「oO寒枫Oo」的原创文章

原文链接:https://blog.csdn.net/lxpbs8851/article/details/38455223

binlog_cache_size前提

服务器配置了 log-bin

含义

为每个session 分配的内存,在事务过程中用来存储二进制日志的缓存。

作用

提高记录bin-log的效率

属性

参数:global

默认值:32768 -- 即 32K

范围:4096 .. 4294967295

大小选择:

没有什么大事务,dml也不是很频繁的情况下可以设置小一点,如果事务大而且多,dml操作也频繁,则可以适当的调大一点。

前者建议是1048576 --1M

后者建议是: 2097152 -- 4194304 即 2--4M

show global status like 'bin%';

上述语句我们可以得到当前 数据库binlog_cache_size的使用情况

mysql 查看内存配置(浅析mysql内存参数之)(1)

Binlog_cache_disk_use表示因为我们binlog_cache_size设计的内存不足导致缓存二进制日志用到了临时文件的次数

Binlog_cache_use 表示 用binlog_cache_size缓存的次数

当对应的Binlog_cache_disk_use 值比较大的时候 我们可以考虑适当的调高 binlog_cache_size 对应的值

注意点

当我们执行多语句事务的时候 所有session的使用的内存超过max_binlog_cache_size的值时

就会报错:“Multi-statement transaction required more than 'max_binlog_cache_size' bytes ofstorage”

配置

a.配置文件设置my.cnf

binlog_cache_size = 1M

b. set global binlog_cache_size = 1048576;

,