二进制日志组提交(Binary Log Group Commit)

mysql 5.5 group commit的bug,开启binary log不能使用组提交,性能差800%,mariadb 5.3实现binary log group commitphp

  • BLGC特性(mariadb 5.三、mysql 5.6)mysql

    • 设置innodb_flush_log_at_trx_commit=1sync_binlog=1,确保数据持久性,crash后恢复到一致性状态
    • 一次fsync刷新多个并发事务的二进制日志到磁盘
    • 在commit提交事务时,只须要作两次fsync操做(以前为3次,commit阶段不须要作fsync),不丢失提交持久性(若是在commit以前发生crash,下次服务重启时从binlog进行恢复,对比xid信息)
      • mariadb的innodb_flush_log_at_trx_commit=3 会作3次fsync操做,能保证提交事务持久性,可是会形成binlog和innodb的一致性问题
      • innodb_flush_log_at_trx_commit=1 可是sync_binlog=0,不能担保持久性的,因crash时binlog的事件将丢失
  • 性能压测对比sql

输入图片说明

相关文章
相关标签/搜索