Undo Logs record. If another transaction needs to see the original data as part of a consistent read operation, the unmodified data is retrieved from undo log records. Undo logs exist within undo log segments, which are contained within rollback segments. Rollback segments reside in undo tablespaces and in the global temporary tablespace. Undo logs that reside in the global temporary tablespace are used for transactions that modify data in user-defined temporary tables. These undo logs are not redo-logged, as they are not required for crash recovery. They are used only for rollback while the server is running. This type of undo log benefits performance by avoiding redo logging I/O. For information about data-at-rest encryption for undo logs, see Undo Log Encryption. Each undo tablespace and the global temporary tablespace individually support a maximum of 128 rollback segments. The  innodb_rollback_segments  variable defines the number of rollback segments. The number of transactions that a rollback segment supports depends on the number of undo slots in the rollback segment and the number of undo logs required by each transaction. The number of undo slots in a rollback segment differs according to  InnoDB  page size. InnoDB Page Size Number of Undo Slots in a Rollback Segment (InnoDB Page Size / 16) 4096 (4KB) 256 8192 (8KB) 512 16384 (16KB) 1024 32768 (32KB) 2048 65536 (64KB) 4096 A transaction is assigned up to four undo logs, one for each of the following operation types: Undo logs are assigned as needed. For example, a transaction that performs  INSERT ,  UPDATE , and DELETE  operations on regular and temporary tables requires a full assignment of four undo logs. A transaction that performs only  INSERT  operations on regular tables requires a single undo log. A transaction that performs operations on regular tables is assigned undo logs from an assigned undo tablespace rollback segment. A transaction that performs operations on temporary tables is assigned undo logs from an assigned global temporary tablespace rollback segment. An undo log assigned to a transaction remains attached to the transaction for its duration. For example, an undo log assigned to a transaction for an  INSERT  operation on a regular table is used for all  INSERT operations on regular tables performed by that transaction. Given the factors described above, the following formulas can be used to estimate the number of concurrent read-write transactions that  InnoDB  is capable of supporting. It is possible to encounter a concurrent transaction limit error before reaching the number of concurrent read-write transactions that  InnoDB  is capable of supporting. 3079 Note 4. UPDATE  and  DELETE  operations on user-defined temporary tables 3. INSERT  operations on user-defined temporary tables 2. UPDATE  and  DELETE  operations on user-defined tables 1. INSERT  operations on user-defined tables