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操作。很重要一点是只有一次摆渡操作,一系列有序的二进制日志。

  • 相关阅读:
    odoo国际化翻译
    Odoo创建基础模块和相关内容
    odoo权限管理(二.记录管理)
    推荐的 MongoDB 安装文档
    Python Spider 抓取今日头条街拍美图
    Python Spider 抓取猫眼电影TOP100
    如何选择 SQL Server 数据库跟操作系统版本
    Mongodb 折腾笔记
    MySQLReport
    kernel TCP time wait bucket table overflow
  • 原文地址:https://www.cnblogs.com/renolei/p/4448433.html
Copyright © 2011-2022 走看看