MySQL 的 redo log 和 binlog 区别?

1 个回答

  • 萧薰儿
    勇敢一点吧!我们不会比今年更年轻了。
    ![image.png](https://images.codewd.com/98c669738f3f62402e20a08824cd56b7.jpg "image.png") ### MySQL 中 Redo Log 和 BinLog 的区别 1. **来源不同**: - **Redo Log**:属于 InnoDB 引擎特有的功能。 - **BinLog**:是 MySQL Server 自带的功能,作为二进制文件记录。 2. **记录方式不同**: - **Redo Log**:是物理日志,记录的是具体某个数据页上的修改内容(如某个数据页做了什么修改)。 - **BinLog**:是逻辑日志,记录的是操作的逻辑过程(如给 ID=2 的记录的 `c` 字段加 1)。 3. **写入机制不同**: - **Redo Log**:采用循环写入的方式,日志空间大小是固定的,会覆盖使用旧日志。 - **BinLog**:采用追加写入的方式,每次写入后直接写下一个,不会覆盖已有日志。 4. **用途不同**: - **Redo Log**:用于服务器宕机后进行事务的自动恢复,保证 crash-safe 能力。 - **BinLog**:用于主从复制和数据恢复,但没有自动 crash-safe 的能力。
    发布于 2024-09-03 21:14 •IP属地 内蒙古
    举报
    评论
    收藏