An undo log (or rollback segment) is a storage area that holds copies of data modified by active transactions. If another transaction needs to see the original data (as part of a consistent read operation), the unmodified data is retrieved from this storage area. By default, this area is physically part of the system tablespace. However, as of MySQL 5.6.3, undo logs can reside in separate undo tablespaces. For more information, see Section 14.5.7, “Storing InnoDB Undo Logs in Separate Tablespaces”. For more information about undo logs and multi-versioning, see Section 14.2.2, “InnoDB Multi-Versioning”.
InnoDB supports 128 undo logs, each supporting
up to 1023 concurrent data-modifying transactions, for a total
limit of approximately 128K concurrent data-modifying transactions
(read-only transactions do not count against the maximum limit).
Each transaction is assigned to one of the undo logs, and remains
tied to that undo log for the duration. The
innodb_undo_logs option defines
how many undo logs are used by