zoukankan      html  css  js  c++  java
  • [MySQL] Group Commit理解

    简单的方法理解MySQL Group Commit原理

    一个摆渡将乘客从A点传输到B点

    MySQL 5.0 行为

    在MySQL 5.0中,摆渡会在A点按顺序搭载乘客,并且传送到B点。A点和B点的来回行程大约需要10min时间,因此在摆渡过程中一些乘客已经到达A点。这样,在摆渡返回A点后,只会按顺序搭载下一个乘客,其他的都在排队等待中。

    MySQL 5.6 行为

    在MySQL 5.6中,摆渡将会搭载A点队列里的所有乘客,并且传送他们到B点。每一次摆渡返回A点搭载乘客时,他会统计所有在等待的人,把他们传送到B点。

    在现实情况下,当有很多乘客等待的时性能是比较好的。

    在5.6中,group commit是默认的。

    MySQL 5.7 行为

    在MySQL 5.7中的行为和5.6类似,会搭载所有A点等待的乘客,并且传送到B点。但有很明显的性能提升!

    当摆渡返回A点,搭载等待乘客时,可以配置等待一小会,以便新的乘客到达。

    例如:如果知道A和B点的往返行程时间是10min,出发前在A点为什么不多等待30s呢?这或许能节省摆渡的往返次数,提升能够传送乘客的总数量。

    相关配置是:

    binlog-group-commit-sync-delay 微妙延迟

    binlog-group-commit-sync-no-delay-count 停止等待前的等待事务数

    总结

    很明显乘客就是事务,摆渡就是昂贵的fsync操作。很重要一点是只有一次摆渡操作,一系列有序的二进制日志。

  • 相关阅读:
    pyecharts的版本问题
    世界各国中英文名称映射字典(pyecharts)
    爬取世界疫情数据绘制疫情可视化地图
    好好写,好好干-PHP基础(二)
    自罚一杯-PHP基础(一)
    又是一周-AJAX(三)
    我懒蛋又回来了!-PDO
    退役了退役了-AJAX
    睡觉问题早晚成为我顶头疼的问题。。。-PHP
    其实今天没有欲望..-MySQLi
  • 原文地址:https://www.cnblogs.com/renolei/p/4448433.html
Copyright © 2011-2022 走看看