binlog_cache_size - xiaoboluo768/qianjinliangfang GitHub Wiki

  • binlog cache的大小。 binlog cache每个客户端都会独立分配二进制日志高速缓存(所有客户端的总的事务语句binlog cache大小由变量max_binlog_cache_size控制,如果超过这个大小时会报错)。 如果您经常使用大型事务,则可以增加此缓存大小以获得更好的性能。 观察Binlog_cache_use和Binlog_cache_disk_use状态变量的值,如果Binlog_cache_disk_use经常被使用到,就需要调整此变量的大小
    • binlog_cache_size仅设用于事务语句高速缓存的大小; 非事务语句高速缓存的大小由binlog_stmt_cache_size系统变量管理。
    • 全局变量,动态变量,整型值,默认值为32K
    • PS:一个事务产生的binlog的量超过了binlog_cache_size的值时,就会在tmpdir参数指定的目录下产生临时文件(类似/tmp/MYdRH1GW,可以使用lsof命令查看,你经常可能会看到类似"/tmp/MYdRH1GW (deleted)"的结果)来存放binlog cache(如果binlog_format设置为row格式,则临时文件以ML开头,其他的格式则临时文件以MY开头),待到事务执行commit且binlog执行到flush阶段时,才会写binlog file的文件系统缓冲,binlog执行到sync阶段时,binlog才会sync到binlog file所在的磁盘中。在sync阶段执行完成之前,如果一旦数据库异常crash或者tmpdir空间满了,则会造成binlog损坏,进而可能导致从库复制报错

上一篇:binlog_row_image | 下一篇:slave_parallel_type