We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 8440af7 commit 95135b7Copy full SHA for 95135b7
docs/database/mysql/mysql-logs.md
@@ -41,6 +41,18 @@ tag:
41
42
### 刷盘时机
43
44
+InnoDB 刷新重做日志的时机有几种情况:
45
+
46
+1. 事务提交:当事务提交时,相关的重做日志会被刷新到磁盘。这确保了提交的事务对于恢复是可用的。
47
48
+2. 事务日志缓冲区满:InnoDB 使用一个事务日志缓冲区(transaction log buffer)来暂时存储事务的重做日志条目。当缓冲区满时,会触发日志的刷新,将日志写入磁盘。
49
50
+3. Checkpoints(检查点):InnoDB 定期会执行检查点操作,将内存中的脏数据(已修改但尚未写入磁盘的数据)刷新到磁盘,并且会将相应的重做日志一同刷新,以确保数据的一致性。
51
52
+4. 后台刷新线程:InnoDB 启动了一个后台线程,负责周期性地将脏页(已修改但尚未写入磁盘的数据页)刷新到磁盘,并将相关的重做日志一同刷新。
53
54
+总之,InnoDB 在多种情况下会刷新重做日志,以保证数据的持久性和一致性
55
56
`InnoDB` 存储引擎为 `redo log` 的刷盘策略提供了 `innodb_flush_log_at_trx_commit` 参数,它支持三种策略:
57
58
- **0**:设置为 0 的时候,表示每次事务提交时不进行刷盘操作
0 commit comments