一、事务持久性的底层保障机制
1.1 ACID特性与持久性核心
事务的**持久性(Durability)依赖数据库的日志系统实现,确保事务提交后数据变更永久保存。InnoDB引擎通过预写日志(WAL, Write-Ahead Logging)**机制实现这一特性,核心流程如下:
- 数据修改:先写入内存缓冲池(Buffer Pool),不立即刷盘。
- 日志先行:事务提交前,修改记录先写入Redo Log(重做日志)和Binlog(二进制日志)。
- 刷盘策略:通过参数控制日志刷盘时机,确保故障后可通过日志恢复数据。
关键参数对比:
参数 | 描述 | 安全性 | 性能影响 |
---|---|---|---|
innodb_flush_log_at_trx_commit=1 |
每次提交同步刷盘Redo Log,最强持久性(崩溃恢复不丢数据) |