【MySQL 5.7 Reference Manual】15.4.8 Undo Logs(Undo日志)

翻译 2017年01月02日 21:30:01
15.4.8 Undo Logs(Undo日志)

An undo log is a collection of undo log records associated with a single transaction. An undo log record contains information about how to undo the latest change by a transaction to a clustered index record. If another transaction needs to see the original data (as part of a consistent read operation), the unmodified data is retrieved from the undo log records. Undo logs exist within undo log segments, which are contained within rollback segments. By default, rollback segments are physically part of the system tablespace. However, rollback segments can reside in separate undo tablespaces. For more information, see Section 15.7.7, “Storing InnoDB Undo Logs in Separate Tablespaces”. For information about multi-versioning, see Section 15.3, “InnoDB Multi-Versioning”.

一个undo日志是与一次事务相关的undo日志记录的集合。一条undo日志记录所包含的信息是关于如何撤销最近通过事务对聚簇索引做出的变更。如果另一个事务需要看原始数据(作为一致性读取操作的一部分),未修改的数据会从undo日志记录取出。undo日志存在于undo日志段中,它同时也包含在回滚段中。在默认情况下,回滚段物理上是系统表空间的一部分。然而,回滚段可以驻留在单独的undo表空间中。更多信息,请参考15.7.7,“在单独的表空间中存储InnoDB Undo日志”。更多内容关于多版本,请参考15.3, “InnoDB多版本”。

InnoDB supports 128 rollback segments, 32 of which are reserved as non-redo rollback segments for temporary table transactions. Each transaction that updates a temporary table (excluding read-only transactions) is assigned two rollback segments, one redo-enabled rollback segment and one non-redo rollback segment. Read-only transactions are only assigned non-redo rollback segments, as read-only transactions are only permitted to modify temporary tables.

InnoDB支持128个回滚段,其中32个保留为临时表事务做non-redo回滚段。每一个更新临时表的事务(除了只读事务)会分配两个回滚段,一个redo-enabled回滚段和一个non-redo回滚段。只读事务只分配non-redo回滚段,因为只读事务只允许修改临时表。

This leaves 96 available rollback segments, each of which supports up to 1023 concurrent data-modifying transactions, for a total limit of approximately 96K concurrent data-modifying transactions. The 96K limit assumes that transactions do not modify temporary tables. If all data-modifying transactions also modify temporary tables, the total limit is approximately 32K concurrent data modifying transactions. For more information about rollback segments that are reserved for temporary table transactions, see Section 15.4.12.1, “InnoDB Temporary Table Undo Logs”.

这样剩下的96个可用回滚段,每一个都支持1023个的并发数据修改事务,总上限约96K个的并发数据修改事务。96K个上限是假设事务没有修改临时表。如果全部数据修改事务也修改了临时表,总上限是约32K个并发数据修改事务。更多信息关于为临时表事务保留的回滚段,请参考15.4.12.1,“InnoDB临时表Undo日志”。

The innodb_undo_logs option defines the number of rollback segments used by InnoDB.

innodb_undo_logs选项定义了InnoDB可用的回滚段数量。

mysql undo日志 redo日志

redo的日志存放在操作系统上,名称类似ib_logfile0和ib_logfile1, redo相关的选项: innodb_log_file_size innodb_log_files_in_g...
  • aoerqileng
  • aoerqileng
  • 2016年05月07日 13:53
  • 729

MySQL当中的日志 --- 浅析InnoDB undo log(1)

什么是Undo logUndo log是MySQL Innodb引擎的日志的一种,记录了老版本的数据。 Undo log是Innodb MVCC重要组成部分,InnoDB的MVCC就是基于Undo ...
  • lpx_cn
  • lpx_cn
  • 2016年12月19日 11:31
  • 1099

5分钟了解MySQL5.7的undo log在线收缩新特性

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://suifu.blog.51cto.com/9167728/1856837 ...
  • carry9148
  • carry9148
  • 2016年10月11日 13:06
  • 619

MySQL Reference Manual中文版

MySQL Reference Manual for version 4.1.0-alpha.  译者序 列类型与函数索引 6 MySQL 语言参考 6.1 语言结构 ...
  • byxdaz
  • byxdaz
  • 2007年09月02日 04:48
  • 3925

binlog,redo log,undo log区别

1. binlog是MySQL Server层记录的日志, redo log是InnoDB存储引擎层的日志。 两者都是记录了某些操作的日志(不是所有)自然有些重复(但两者记录的格式不同)。 2. 选...
  • mydriverc2
  • mydriverc2
  • 2016年02月03日 15:15
  • 3879

MySql-Undo及Redo详解

00 – Undo Log Undo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。 - 事务的原子性(At...
  • alexdamiao
  • alexdamiao
  • 2016年07月10日 17:45
  • 4972

【MySQL 5.7 Reference Manual】15.4.12.1 InnoDB Temporary Table Undo Logs(InnoDB临时表Undo日志)

临时表undo日志,在MySQL 5.7.2中被引入,用于存放临时表和相关对象。这种类型的undo日志不是一个redo日志,因为临时表在崩溃恢复期间不会被恢复并且不需要redo日志。然而,临时表und...
  • along0314110
  • along0314110
  • 2017年01月02日 21:35
  • 138

MySQL redo与undo

文章转载来自:http://www.cnblogs.com/Bozh/archive/2013/03/18/2966494.html   00 – Undo LogUndo Log 是为了实现事务...
  • cmh200704
  • cmh200704
  • 2016年03月17日 09:37
  • 5491

【MySQL 5.7 Reference Manual】15.4.11 Undo Tablespace(Undo表空间)

一个undo表空间由一个或多个包含undo logs文件组成。Undo日志存在于undo日志段中,而undo日志段被包含在回滚段中。在默认情况下,回滚段物理上是系统表空间的一部分。然而,回滚段可以驻留...
  • along0314110
  • along0314110
  • 2017年01月02日 21:33
  • 283

InnoDB事务日志(redo log 和 undo log)详解

为了最大程度避免数据写入时io瓶颈带来的性能问题,MySQL采用了这样一种缓存机制:当query修改数据库内数据时,InnoDB先将该数据从磁盘读取到内存中,修改内存中的数据拷贝,并记录持久化在硬盘上...
  • leonpenn
  • leonpenn
  • 2017年05月27日 10:08
  • 795
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【MySQL 5.7 Reference Manual】15.4.8 Undo Logs(Undo日志)
举报原因:
原因补充:

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