一、mysql group commit 的官方定义:

InnoDB, like any other ACID-compliant database engine, flushes the redo log of a transaction before it is committed. InnoDB uses group commit functionality to group multiple such flush requests together to avoid one flush for each commit. With group commit, InnoDB issues a single write to the log file to perform the commit action for multiple user transactions that commit at about the same time, significantly improving throughput.

An InnoDB optimization that performs some low-level I/O operations (log write) once for a set of commit operations, rather than flushing and syncing separately for each commit.

  

  参考连接:

    https://dev.mysql.com/doc/refman/5.7/en/innodb-performance-group_commit.html

    https://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_group_commit

二、翻译一下

  innodb 和所有支持acid属性的引擎一样,提交得以完成的条件是事务相关的redo log 都刷新到了磁盘,innodb 使用组提交

  的方式把多个刷新操作组织到一起,这样就避免为每一个commit发起一个刷新操作,而是多个commit共用一个刷新。

三、group commit 的原理:

  为了说明innodb group commit的原理,我在这里假设一个有3个事务同时运行

  a事务从t0 时刻开始运行,到t1时刻完成的操作,t9的时间收到了commit指令

  b事务从t1 时刻开始运行,到t2时刻完成的操作,t8的时间收到了commit指令

  c事务从t3 时刻开始运行,到t4时刻完成的操作,t5的时间收到了commit指令

  传统模式下三个commit对应三次刷新操作,但是在group commit 情况下一次就行了,看图

  

----

转载于:https://www.cnblogs.com/JiangLe/p/7674017.html

mysql-5.7 group commit 详解相关推荐

  1. MySQL事务及隔离级别详解

    MySQL事务及隔离级别详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL的基本架构 MySQL的基本架构可以分为三块,即连接池,核心功能层,存储引擎层. 1> ...

  2. mysql 聚集函数 count 使用详解

    mysql 聚集函数 count 使用详解 本文将探讨以下问题 1.count(*) . count(n).count(null)与count(fieldName) 2.distinct 与 coun ...

  3. MySQL数据类型以及基本使用详解

    MySQL数据类型以及基本使用详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL服务器的主要组件 我们知道MySQL的主要组件主要是由服务端(mysqld)和客户端 ...

  4. MySQL数据库update语句使用详解

    MySQL数据库update语句使用详解 本篇文章我们来讲讲如何对MySQL数据库进行更新操作,对数据库进行增删改查操作是我们必会的基础之一,会了这个增删改查我们可以在这基础上去编写更多的东西,废话不 ...

  5. linux 用root安装mysql数据库_Linux上安装Mysql及简单的使用详解

    1. 安装mysql sudo apt-get update sudo apt-get install mysql-server sudo apt-get install python-mysqldb ...

  6. docker导入MySQL文件_Docker容器中Mysql数据的导入/导出详解

    前言 Mysql数据的导入导出我们都知道一个mysqldump命令就能够解决,但如果是运行在docker环境下的mysql呢? 解决办法其实还是用mysqldump命令,但是我们需要进入docker的 ...

  7. php mysql无限_php+mysql实现无限分类实例详解

    php+mysql实现无限分类实例详解 fenlei($arr[$i][0]);   //$arr[$i][1]表示第$i+1个分类的id的值.进行递归,也就是把自己的id作为f_id参数把自己的子类 ...

  8. 深入mysql慢查询设置的详解

    深入mysql慢查询设置的详解 在web开发中,我们经常会写出一些SQL语句,一条糟糕的SQL语句可能让你的整个程序都非常慢,超过10秒一般用户就会选择关闭网页,如何优化SQL语句将那些运行时间 比较 ...

  9. mysql查询语句详解_基于mysql查询语句的使用详解

    1> 查询数据表除了前三条以外的数据. 起初我想到的是这条语句 SELECT * FROM admin WHERE userid NOT IN (SELECT userid FROM admin ...

最新文章

  1. Essential fact about future of PhD studies
  2. java中的序列化和反序列化
  3. 算法练习day8——190326(猫狗队列、转圈打印矩阵、旋转正方形矩阵、反转单向双向链表、数N的加法组合)
  4. matplotlib的默认字体_浅谈matplotlib默认字体设置探索
  5. JavaScript parseInt() 函数
  6. Java 并发 —— volatile 关键字
  7. React入门---组件-4
  8. 认证Authentication
  9. UML类图、代理学习
  10. python创建通讯录_python实现简易通讯录修改版
  11. 优秀的NAS不光只有群晖,看看威联通在安全性上如何K掉群晖
  12. 机载LIDAR技术及其应用
  13. mysql 批量数据插入很慢(kettle 输入输出组件) 性能优化办法
  14. 如果我有100块钱……
  15. perl范围声明our,my,local
  16. python每个数都可由集合中的某两个数相加而得
  17. 2020年百度之星·程序设计大赛-初赛一
  18. .netcore-线程池饿死问题分析(CPU空闲,并发量大时请求超时)
  19. 【若泽大数据实战第七天】MySQL在DBeaver上的使用
  20. python绿色版spider的idle_Python-Scrapy Spider没有收到spider_idle信号

热门文章

  1. iframe子页面获取父页面元素,或父页面获取iframe子页面的元素
  2. hibernate4 could not initialize proxy - no Session
  3. Java使用IntelliJ IDEA创建一个基于Swing的GUI图形化程序,打包发布为jar
  4. 【CCCC】L3-004 肿瘤诊断 (30分),三维BFS
  5. powerbi输入数据_如何用Power BI对数据建模?
  6. profibus 主站软件_PROFIBUS网络的DP主站与DP从站
  7. 小新air15为啥没人买_联想小新air15怎么样?身边的人用的好像比较少?
  8. JavaScript浏览器对象模型
  9. Python入门--字符串的比较
  10. java消除整型数组中重复的元素,排序后输出新数组