2张图彻底搞懂 MySQL InnoDB 中数据页、索引页、redo log、binlog、undo的文件、内存、刷盘机制
在MySQL InnoDB存储引擎中,数据页、索引页、redo log、binlog、undo log都是为了保证数据的一致性和持久性而存在的重要组成部分。
- 数据页(B-tree Node):存储表中的记录行数据,是索引组织的基本单元。
- 索引页(Index Node):存储索引相关的数据,包括非叶子节点的索引记录。
- redo log(重做日志):记录事务进行过程中所有的变更操作,用于恢复提交的事务。
- binlog(二进制日志):记录所有更改数据的语句,用于复制和数据恢复。
- undo log(回滚日志):记录事务开始前的数据状态,用于回滚未提交的事务。
以下是这些组件的简单概述:
数据页:存储表中的行数据,每页大小通常为16KB。
索引页:存储非叶子节点数据,通常每页大小也是16KB。
redo log:用于保证事务的持久性,大小固定,用循环写入方式更新。
binlog:用于复制和数据恢复,记录所有改变数据的语句。
undo log:保存旧版本数据用于回滚,不会被立即删除。
这些日志和页的作用相互依赖,共同保证MySQL的数据一致性和持久性。
评论已关闭