是innodb_flush_log_at_trx_commit = 1意味着如果提交返回ok,缓冲区是否为日志?

时间:2018-01-08 03:26:53

标签: mysql innodb

我写了一个测试程序:

  1. 开始交易
  2. 将100000行插入表格
  3. commit
  4. 从表中选择count(1)并返回100000
  5. 使用kill -9关闭mysqld线程
  6. 然后重新开始,我发现innodb崩溃恢复了“

1 个答案:

答案 0 :(得分:0)

您是否阅读过https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit?它部分地说:

  
      
  • 的innodb_flush_log_at_trx_commit

         

    完全ACID合规性需要默认值1。同   这个值,InnoDB日志缓冲区的内容被写出来   每个事务提交的日志文件和日志文件都刷新到   磁盘。

  •   

InnoDB崩溃恢复是否在kill -9 mysqld进程之后运行,您是否感到惊讶?如果你问这是否正常,你的问题就不清楚了。它是。