zoukankan      html  css  js  c++  java
  • mysql原理~binlog原理之binlog-cache

    一 简介:来聊聊binlog cache

    二 定义

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

    三  参数

     1 binlog_cache_size 默认 32K 用于指定存储整个事物生成的binlog event的内存大小,对于大事物来讲很可能超过这个参数的设置,则需要开启binlog 临时文件用于存储。

     2 max_binlog_cache_size 用于指定当某个事物的binlog event超过了binlog_cache_size大小的设置开启binlog 临时文件的可用大小,如果事物的binlog event生成量超过了max_binlog_cache_size+binlog_cache_size设置的大小则会抛错:

    四 临时文件

      1 临时文件存放在tmpdir的定义的目录下,文件名为”ML”开头。但是这个文件不能用ls看到,需要lsof命令

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

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

    五 状态   

      查看 binlog_cache的使用情况 单位是次

      Binlog_cache_disk_use 缓存

      Binlog_cache_use     临时文件

     1 当对应的Binlog_cache_disk_use 值比较大的时候 我们可以考虑适当的调高 binlog_cache_size 对应的值,减少IO层的操作交互

    六 整体流程

      1 事务开启

      2 事务执行DML语句 分配独立binlog_cache,并且写入

      3 如果binlog cache的空间已经满了,则将binlog cache的数据写入到binlog临时文件,同时清空binlog cache。如果binlog临时文件的大小大于了max_binlog_cache_size的设置则抛错ERROR 1197 (HY000)。

      4 事物提交,整个binlog cache和binlog临时文件数据全部写入到binlog file中进行固化,释放binlog cache和binlog临时文件

     5 断开连接 释放回收

    参考原文链接 :

    https://www.jianshu.com/p/fb4ffe7fd7d2  八怪大神

  • 相关阅读:
    384. 最长无重复字符的子串
    406. 和大于S的最小子数组
    159. 寻找旋转排序数组中的最小值
    62. 搜索旋转排序数组
    20. 骰子求和
    125. 背包问题 II
    92. 背包问题
    1295. 质因数统计
    471. 最高频的K个单词
    1339. 最大区间
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/11486048.html
Copyright © 2011-2022 走看看