InnoDB Data Locking – Part 2.5 “Locks” (Deeper dive)
All together now
Let’s now put together all that we’ve learned in InnoDB Data Locking – Part 2 “Locks” about table and record locks to understand following situation:
mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT * FROM t FOR SHARE;
+----+
| id |
+----+
| 5 |
| 10 |
| 42 |
+----+
3 rows in set (0.00 sec)
mysql> DELETE FROM t WHERE id=10;
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO t VALUES (4);
Query OK, 1 row affected (0.00 sec)
mysql> SELECT INDEX_NAME,LOCK_TYPE,LOCK_DATA,LOCK_MODE
FROM performance_schema.data_locks
…
Source: InnoDB Data Locking – Part 2.5 “Locks” (Deeper dive)