InnoDB 中文参考手册 --- 10 multiversioning 的实现

原创 2003年05月22日 08:27:00

10 multiversioning 的实现

因为 InnoDB 是一个 multiversioned 数据库系统,它必须在表空间内保存记录行的先期版本信息。这个信息被存储在被称为回滚段(rollback segment)的数据结构中,这与 Oracle 相似。

InnoDB 在内部处理时在数据库中为每行记录添加两个字段。一个6-byte 字段描述最后一个插入或更新该行的事务的标识符。同样被删除记录在内部处理上为更新该行的某一标志位, 该标志位用于记录它已被删除。每行记录同样包含着一个名为滚指针(roll pointer)的 7-byte 字段。这个指针指向一个在回滚段中存储的撤消日志记录(undo log record)。如果该行被更新过,那么撤消日志记录中包含必要的信息来重建它被更新前的内容。

InnoDB 需要通过一个事务的回滚来实现使用回滚段中的信息执行撤销操作。它也用于为一个 consistent read 来重建一个记录行的早期版本。

在回滚段中的撤销日志被分为插入和更新撤销日志。插入撤销日志(Insert undo logs)仅仅只在事务回滚时需要,它可以在事务一提交就被抛弃。更新撤销日志(Update undo logs)同样也在 consistent reads 中使用,它们将在当前没有事务时被抛弃。InnoDB 指派了一个数据快照,而 consistent read 需要更新撤销日志中的信息来重建一个数据库行的早期版本。

必须记录有规律地提交你的事务,同样的这些事务只发出了consistent reads。否则 InnoDB 不能够从更新撤销日志中抛弃数据,则回滚段可能会增加地太大而填满了整个表空间。

回滚段中的撤销日志记录的物理尺寸通常比它们相对应的插入或更新的记录要小些。 你可以通过学习这些信息估算出回滚段所需的空间。

在 multiversioning 的设计中,以一条 SQL 语句删除一个记录行时,该记录并不会立即从数据库中移除。只在当 InnoDB 抛弃删除的更新撤销日志记录时,它才会从数据库中物理地移除相应的记录行以及它的索引。 这个移除操作被称为 purge,它是非常快的,通常以与执行删除的 SQL 语句相同的时间顺序执行。

 

ECMAScript6(0):ES6简明参考手册

本文翻译自github上的一篇文章 原文地址:https://github.com/DrkSephy/es6-cheatsheet es6-参考手册该手册包括ES2015[ES6]的知识点、技巧、建...
  • Faremax
  • Faremax
  • 2016年12月16日 16:52
  • 2127

Apache Mina Server 2.0 中文参考手册中文参考手册

原文链接:点击打开链接 Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务、...
  • y_chengyong
  • y_chengyong
  • 2013年06月23日 16:27
  • 1364

Spring 4.x官方参考文档中文版——第六部分 Web技术

基于Spring 4.2.5官方文档,现在MVC部分已经翻译完毕,现在重新优化翻译并审校,制作离线文档中。制作完成后将发布于博客。...
  • HermaeuxMora
  • HermaeuxMora
  • 2016年05月18日 09:18
  • 6772

InnoDB 中文参考手册(CHM)

  • 2004年09月10日 00:26
  • 160KB
  • 下载

STM32中文参考手册_V10

  • 2016年06月12日 12:17
  • 16.43MB
  • 下载

STM32中文参考手册_V10

  • 2015年05月16日 17:54
  • 13.22MB
  • 下载

XMLHttpRequest中文参考手册(10)

  • 2013年06月06日 14:20
  • 53KB
  • 下载

【中文】STM32F系列ARM内核32位高性能微控制器参考手册V10_1.pdf

  • 2014年01月12日 20:07
  • 15.87MB
  • 下载

【中文】STM32F系列ARM内核32位高性能微控制器参考手册V10

  • 2014年02月15日 00:24
  • 16.48MB
  • 下载

STM32F10xxx_中文参考手册

  • 2011年03月12日 08:05
  • 3.69MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:InnoDB 中文参考手册 --- 10 multiversioning 的实现
举报原因:
原因补充:

(最多只允许输入30个字)