如果innodb_flush_log_at_trx_commit設定為0,log buffer将每秒一次地寫入log file中,并且log file的flush(刷到磁盤)操作同時進行.該模式下,在事務送出的時候,不會主動觸發寫入磁盤的操作。
如果innodb_flush_log_at_trx_commit設定為1,每次事務送出時MySQL都會把log buffer的資料寫入log file,并且flush(刷到磁盤)中去.
如果innodb_flush_log_at_trx_commit設定為2,每次事務送出時MySQL都會把log buffer的資料寫入log file.但是flush(刷到磁盤)操作并不會同時進行。該模式下,MySQL會每秒執行一次 flush(刷到磁盤)操作。
注意:
由于程序排程政策問題,這個“每秒執行一次 flush(刷到磁盤)操作”并不是保證100%的“每秒”。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yM5kDMycTO4QjMkVWNzEjMzYzX3ETMwATM0EzLclDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
轉自: