• 其实,binlog 的写入逻辑比较简单:事务执行过程中,先把日志写到 binlog cache,事务提交的时候,再把 binlog cache 写到 binlog 文件中。
  • 一个事务的 binlog 是不能被拆开的,因此不论这个事务多大,也要确保一次性写入。这就涉及到了 binlog cache 的保存问题。
  • 系统给 binlog cache 分配了一片内存,每个线程一个,参数 binlog_cache_size 用于控制单个线程内 binlog cache 所占内存的大小。如果超过了这个参数规定的大小,就要暂存到磁盘。
  • 事务提交的时候,执行器把 binlog cache 里的完整事务写入到 binlog 中,并清空 binlog cache。状态如图 1 所示。

 
可以看到,每个线程有自己 binlog cache,但是共用同一份 binlog 文件。
图中的 write,指的就是指把日志写入到文件系统的 page cache,并没有把数据持久化到磁盘,所以速度比较快。
图中的 fsync,才是将数据持久化到磁盘的操作。一般情况下,我们认为 fsync 才占磁盘的 IOPS。

sync_binlog参数
        1.sync_binlog=0 的时候,表示每次提交事务都只 write,不 fsync;
        2.sync_binlog=1 的时候,表示每次提交事务都会执行 fsync
        3.sync_binlog=N(N>1) 的时候,表示每次提交事务都 write,但累积 N 个事务后才 fsync
        因此,在出现 IO 瓶颈的场景里,将 sync_binlog 设置成一个比较大的值,可以提升性能。在实际的业务场景中,考虑到丢失日志量的可控性,一般不建议将这个参数设成 0,比较常见的是将其设置为 100~1000 中的某个数值。
        但是,将 sync_binlog 设置为 N,对应的风险是:如果主机发生异常重启,会丢失最近 N 个事务的 binlog 日志。

书生笔记-binlog 的写入机制相关推荐

  1. Mysql binlog 的写入机制

    其实,binlog 的写入逻辑比较简单:事务执行过程中,先把日志写到 binlog cache,事务提交的时候,再把 binlog cache 写到 binlog 文件中. 一个事务的 binlog ...

  2. 《MySQL——redo log 与 binlog 写入机制》

    目录 binlog写入机制 redo log写入机制 组提交机制实现大量的TPS 理解WAL机制 如何提升IO性能瓶颈 WAL机制告诉我们:只要redo log与binlog保证持久化到磁盘里,就能确 ...

  3. Apache Nutch 1.3 学习笔记十(插件机制分析)

    1. 一些对象说明 PluginRepository:这是一个用于存储所有插件描述对象(PluginDescriptor),插件扩展点(ExtensionPoint)和被激活的插件. PluginDe ...

  4. STM32复习笔记(五) —— GPIO锁定机制

    STM32复习笔记(五) -- GPIO锁定机制 1.GPIO 锁定机制 锁定机制可以锁定 IO 口的配置,锁定一个端口位之后,直至下一次复位之前,将不能再更改端口位的配置 2.本例程软件设计思路 1 ...

  5. Python3.7学习笔记30-垃圾回收机制

    Python3.7学习笔记30-垃圾回收机制 一.前言 Python 程序在运行的时候,需要在内存中开辟出一块空间,用于存放运行时产生的临时变量:计算完成后,再将结果输出到永久性存储器中.如果数据量过 ...

  6. 徐无忌并发编程笔记:无锁机制CAS及其底层实现原理?

    徐无忌并发编程笔记:无锁机制CAS及其底层实现原理? 完成:第一遍 1.什么是CAS算法? compare and swap:比较与交换,是一种有名的无锁算法 CAS带来了一种无锁解决线程同步,冲突问 ...

  7. JVM的私房笔记(一)类加载机制与类加载器 by 葵鱼

    前言 准备写这份笔记的时候,想法还是较为简单的,就是希望能将学到的,听到的,查到的,看到的东西做一个总结,以免后面自己遗忘.同时我将会以段落和副标题的形式编写.有什么问题或者错误的地方,还请大家多指正 ...

  8. 浪潮全固态存储如何优化MASP架构的SSD优化写入机制?

    SSD写放大,是影响固态存储性能发挥的关键.浪潮固态存储HF5000的MASP架构,通过顺序化条带技术,给出了SSD写放大的正解. 当前存储介质正经历着一场空前巨大的变革.存储介质正在从机械式磁盘转向 ...

  9. Linux epoll 笔记(高并发事件处理机制)

    wiki: Epoll优点: Epoll工作流程: Epoll实现机制: epollevent; Epoll源码分析: Epoll接口: epoll_create; epoll_ctl; epoll_ ...

最新文章

  1. hadoop+zookeeper+hbase 完全安装手册
  2. html5 javascript 事件练习3键盘控制练习
  3. mysql中tonumber函数_Oracle数据库之oracle的TO_NUMBER函数
  4. 定义交货输出条件类型(Output Types)
  5. 掌控谈话~重复对方的话
  6. java集合之failfast机制
  7. 一个人不孤单,想一个人才孤单
  8. Apache JMeter 5.1.1 发布,压力测试工具
  9. SetupFactory使用
  10. 电商格局谋定重整-万祥军:李玉庭对话中国经济和信息化
  11. 【精品课设】经典PID与模糊PID控制的对比与分析(一)
  12. 计算机关闭测试模式,win10怎么开启及关闭测试模式 win10测试模式对电脑有影响吗...
  13. 量化投资学习——行业轮动规律
  14. 三件套都有什么_床上四件套和三件套都包括哪些物品?床上四件套选购指南
  15. 如何写出更优雅的代码——编程范式简述
  16. 【已解决】sftp命令没有反应
  17. Linux下aMule安装教程
  18. Rikka with Travels
  19. Hive Sql 分析实例: 淘宝消费者行为分析
  20. 首次不依赖生成模型,一句话让AI修图!

热门文章

  1. Xftp 7(FTP/SFTP客户端) V7.0.0107 官方中文免费正式版(附文件+安装教程)
  2. iPS细胞的最新应用
  3. 学习日记day09 ps
  4. Python:urllib与urllib2错误解析
  5. 基于Verilog的TCAM硬件实现
  6. 2018纪中集训游记
  7. 3GPP TS 23501-g51 中英文对照 | 5.3.1 General
  8. 3GPP TS 23501-g51 中英文对照 | 5.2.3 Identification and authentication
  9. 基于STM32视频监控系统
  10. UITextField实现过滤选中状态拼音