Skip to content

Latest commit

 

History

History
12 lines (7 loc) · 1.05 KB

数据库-mysql-InnoDB多版本控制.md

File metadata and controls

12 lines (7 loc) · 1.05 KB

InnoDB 多版本控制

InnoDB 是一个多版本存储引擎。它保留已更改行的旧版本的信息,以支持事务性功能,如并发和回滚。此信息存储在名为回滚段(rollback segment)的数据结构中。InnoDB 使用回滚段中的信息执行事务回滚所需的撤销操作。它还使用这些信息构建行的早期版本,以实现一致性读取。

InnoDB 在内部向数据库中存储的每一行添加 3 个字段:

  • 6 字节 DB_TRX_ID 字段:表示插入或更新行的最后一个事务的事务标识符。此外,删除操作在内部被视为更新,行中的特殊位被设置为将其标记为已删除。

  • 7 字节 DB_ROLL_PTR 字段:称为滚动指针。滚动指针指向写入回滚段的撤销日志记录。如果行已更新,则撤销日志记录包含更新前恢复行内容所需的信息。

  • 6 字节 DB_ROW_ID 字段:包含一个随着插入新行而单调增加的行 ID。如果 InnoDB 自动生成聚集索引,则该索引包含行 ID。否则,DB_ROW_ID 列不会出现在任何索引中。