关于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会有很明显的改善,但也有丢数据的风险,慎用。