Skip to content

Commit 95135b7

Browse files
committed
update mysql-logs.md
1 parent 8440af7 commit 95135b7

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

docs/database/mysql/mysql-logs.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,18 @@ tag:
4141
4242
### 刷盘时机
4343

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+
4456
`InnoDB` 存储引擎为 `redo log` 的刷盘策略提供了 `innodb_flush_log_at_trx_commit` 参数,它支持三种策略:
4557

4658
- **0**:设置为 0 的时候,表示每次事务提交时不进行刷盘操作

0 commit comments

Comments
 (0)