MySQL 中,重做日志(redo log)和撤销日志(undo log)的作用
在 MySQL 中,重做日志(redo log)和撤销日志(undo log)都有各自的重要作用:
### 重做日志(Redo Log)
1. **恢复数据**:重做日志记录已提交的事务,用于在系统崩溃后恢复数据,确保数据不会丢失。
2. **提高性能**:允许数据库系统在后台异步将数据写入磁盘,减少直接写入磁盘的频率,提高性能。
### 撤销日志(Undo Log)
1. **事务回滚**:撤销日志记录未提交事务的前镜像,用于在事务失败或回滚时恢复数据到之前的状态。
2. **并发控制**:支持多版本并发控制(MVCC),提供数据快照,实现读写操作的隔离性。
这两个日志在保证数据完整性和提高数据库性能方面都发挥着关键作用。