关于redo log 刷盘时机
来源:华佗健康网
InnoDB 存储引擎为 redo log 的刷盘策略提供了 innodb_flush_log_at_trx_commit 参数,它支持三种策略:
0 :设置为 0 的时候,表示每次事务提交时不进行刷盘操作
1 :设置为 1 的时候,表示每次事务提交时都将进行刷盘操作(默认值)
2 :设置为 2 的时候,表示每次事务提交时都只把 redo log buffer 内容写入 page cache ,然后调用 fsync 刷盘。
innodb_flush_log_at_trx_commit 参数默认为 1
InnoDB 存储引擎有一个后台线程,每隔1 秒,就会把 redo log buffer 中的内容写到文件系统缓存(page cache),然后调用 fsync 刷盘
除此之外,当 log buffer 占用超过50%时也会刷盘。
关闭服务器时,也会刷盘。
更新checkpoint也会进行刷盘。
因篇幅问题不能全部显示,请点此查看更多更全内容