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  八怪大神

  • 相关阅读:
    NSIS使用WinVer.nsh头文件判断操作系统版本
    批处理bat命令--获取当前盘符和当前目录和上级目录
    官方 NSIS 插件全集简单介绍
    js 的基础知识变量
    js stringObject的indexOf方法
    js 作为属性的变量
    js 不可变的原始值和可变的对象引用
    jquery完善的处理机制
    jquery对象和DOM对象的相互转换
    CSS3 animation-fill-mode 属性
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/11486048.html
Copyright © 2011-2022 走看看