1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

update mysql-logs.md

This commit is contained in:
jun 2023-08-07 15:49:28 +08:00
parent 8440af732b
commit 95135b7775

View File

@ -41,6 +41,18 @@ tag:
### 刷盘时机 ### 刷盘时机
InnoDB 刷新重做日志的时机有几种情况:
1. 事务提交:当事务提交时,相关的重做日志会被刷新到磁盘。这确保了提交的事务对于恢复是可用的。
2. 事务日志缓冲区满InnoDB 使用一个事务日志缓冲区transaction log buffer来暂时存储事务的重做日志条目。当缓冲区满时会触发日志的刷新将日志写入磁盘。
3. Checkpoints检查点InnoDB 定期会执行检查点操作,将内存中的脏数据(已修改但尚未写入磁盘的数据)刷新到磁盘,并且会将相应的重做日志一同刷新,以确保数据的一致性。
4. 后台刷新线程InnoDB 启动了一个后台线程,负责周期性地将脏页(已修改但尚未写入磁盘的数据页)刷新到磁盘,并将相关的重做日志一同刷新。
总之InnoDB 在多种情况下会刷新重做日志,以保证数据的持久性和一致性
`InnoDB` 存储引擎为 `redo log` 的刷盘策略提供了 `innodb_flush_log_at_trx_commit` 参数,它支持三种策略: `InnoDB` 存储引擎为 `redo log` 的刷盘策略提供了 `innodb_flush_log_at_trx_commit` 参数,它支持三种策略:
- **0**:设置为 0 的时候,表示每次事务提交时不进行刷盘操作 - **0**:设置为 0 的时候,表示每次事务提交时不进行刷盘操作