innodb_flush_log_at_trx_commit
设置为0 的时候,Log Thread 会在每次事务结束的时候将数据写入事务日志,mysql每秒执行一次,mysql崩溃,则会丢失数据。
设置为1 的时候,Log Thread 会在每次事务结束的时候将数据写入事务日志,并flush写入磁盘。
设置为2 的时候,Log Thread 会在每次事务结束的时候将数据写入事务日志,但是这里的写入仅仅是调用了文件系统的文件写入操作。系统会每秒执行flush写入磁盘,系统崩溃的时候才会丢失数据。
测试:
innodb_flush_log_at_trx_commit = 1:5000条数据插入耗时40s
innodb_flush_log_at_trx_commit =2 :5000条数据插入耗时1s,25000条数据,耗时4s多。