innodb_flush_log_at_trx_commit参数

1、参数查看

  • 方法一:mysql> show  variables like 'innodb_flush_log_at_trx_commit';    
  • 方法二:直接查看my.cnf文件innodb_flush_log_at_trx_commit参数值

2、参数配置

  • 方法一:mysql> set global innodb_flush_log_at_trx_commit=1; 重启后会丢失使用my.cnf参数
  • 方法二:直接修改my.cnf文件innodb_flush_log_at_trx_commit参数值,但需要重启实例生效

3、参数值意义

  • 参数值可以是0,1,2
  • 0   :该模式速度最快,但不太安全,mysqld进程的崩溃会导致上一秒钟所有事务数据的丢失。
  • 1   :该模式是最安全的,但也是最慢的一种方式。在mysqld 服务崩溃或者服务器主机crash的情况下,binary log 只有可能丢失最多一个语句或者一个事务。
  • 2   :该模式速度较快,也比0安全,只有在操作系统崩溃或者系统断电的情况下,上一秒钟所有事务数据才可能丢失。

4、外料

  有文章说innodb_flush_log_at_trx_commit和sync_binlog 两个参数是控制MySQL 磁盘写入策略以及数据安全性的关键参数,当两个参数都设置为1的时候写入性能最差,推荐做法是innodb_flush_log_at_trx_commit=2,sync_binlog=500 或1000

上一篇:Could not flush and close the file system output stream


下一篇:RocketMQ-存储机制-刷盘机制