InnoDB Locking Transaction data for a next-key lock appears similar to the following in  SHOW ENGINE INNODB STATUS and InnoDB monitor output: An insert intention lock is a type of gap lock set by  INSERT  operations prior to row insertion. This lock signals the intent to insert in such a way that multiple transactions inserting into the same index gap need not wait for each other if they are not inserting at the same position within the gap. Suppose that there are index records with values of 4 and 7. Separate transactions that attempt to insert values of 5 and 6, respectively, each lock the gap between 4 and 7 with insert intention locks prior to obtaining the exclusive lock on the inserted row, but do not block each other because the rows are nonconflicting. The following example demonstrates a transaction taking an insert intention lock prior to obtaining an exclusive lock on the inserted record. The example involves two clients, A and B. Client A creates a table containing two index records (90 and 102) and then starts a transaction that places an exclusive lock on index records with an ID greater than 100. The exclusive lock includes a gap lock before record 102: Transaction data for an insert intention lock appears similar to the following in  SHOW ENGINE INNODB STATUS  and InnoDB monitor output: An  AUTO-INC  lock is a special table-level lock taken by transactions inserting into tables with AUTO_INCREMENT  columns. In the simplest case, if one transaction is inserting values into the table, 3084 AUTO-INC Locks Insert Intention Locks RECORD LOCKS space id 58 page no 3 n bits 72 index ‘PRIMARY‘ of table ‘test‘.‘t‘ trx id 10080 lock_mode X Record lock, heap no 1 PHYSICAL RECORD: n_fields 1; compact format; info bits 0  0: len 8; hex 73757072656d756d; asc supremum;; Record lock, heap no 2 PHYSICAL RECORD: n_fields 3; compact format; info bits 0  0: len 4; hex 8000000a; asc ;;  1: len 6; hex 00000000274f; asc ’O;;  2: len 7; hex b60000019d0110; asc ;; mysql>  CREATE TABLE child (id int(11) NOT NULL, PRIMARY KEY(id)) ENGINE=InnoDB; mysql>  INSERT INTO child (id) values (90),(102); mysql>  START TRANSACTION; mysql>  SELECT * FROM child WHERE id > 100 FOR UPDATE; +-----+ | id | +-----+ | 102 | +-----+ RECORD LOCKS space id 31 page no 3 n bits 72 index ‘PRIMARY‘ of table ‘test‘.‘child‘ trx id 8731 lock_mode X locks gap before rec  insert intention  waiting Record lock, heap no 3 PHYSICAL RECORD: n_fields 3; compact format; info bits 0  0: len 4; hex 80000066; asc f;;  1: len 6; hex 000000002215; asc " ;;  2: len 7; hex 9000000172011c; asc r ;;... mysql>  START TRANSACTION; mysql>  INSERT INTO child (id) VALUES (101); Client B begins a transaction to insert a record into the gap. The transaction takes an insert intention lock while it waits to obtain an exclusive lock.