關於innodb_flush_log_at_trx_commit的解釋,可以參考MySQL手冊。
最近遇到一個寫量極大的業務,通過調整innodb_flush_log_at_trx_commit的值,對磁盤IO的改善,着實讓我震驚了一把。
這是innodb_flush_log_at_trx_commit默認值為1的情況。
這是innodb_flush_log_at_trx_commit改為0的情況。
可以看到,調整innodb_flush_log_at_trx_commit,IO負載馬上下降。
調整innodb_flush_log_at_trx_commit對於大量寫事務的情況磁盤IO會有很明顯的改善,但也有丟數據的風險,慎用。