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

  • 相关阅读:
    对于石家庄铁道大学软件个人总结
    Android Studio安装
    典型用户模板和用户场景模板
    java+jsp+sql server实现网页版四则运算.
    四则运算一
    学习进度
    构建之法阅读笔记(一)
    记账本小程序7天开发记录(第一天)
    javabean+jsp+servlet+jdbc从软件安装到开发实例
    编写一个文件分割工具,能把一个大文件分割成多个小的文件。并且能再次把它们合并起来得到完整的文件。
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/11486048.html
Copyright © 2011-2022 走看看