Вы ссылаетесь на некоторую документацию по MySQL 5.7, поэтому я предполагаю, что вы используете 5.7.
Единственными блокировками таблиц в InnoDB являются блокировки метаданных , которые также называются намеренными блокировками , задокументированными здесь: https://dev.mysql.com/doc/refman/5.5/en/innodb-locking.html#innodb-intention-locks
Любая транзакция, которая хочет выполнить какую-либо операцию DML для чтения или записи записей в таблице (т. Е. SELECT / INSERT / UPDATE / DELETE), должна сначала получить блокировку метаданных. Несколько одновременных сеансов могут получить блокировки метаданных для выполнения DML, и они не конфликтуют друг с другом.
Аналогично, операции с метаданными (операторы DDL ALTER, DROP или TRUNCATE TABLE) должны получить блокировку метаданных, прежде чем они начнутся. Таким образом, операторы DDL блокируются, если есть какие-либо транзакции, выполняющие операторы DML, и наоборот.
Вот как DML блокируется при запросе таблицы во время длительной ALTER.
В MySQL 5.7 вы можете настроить некоторые инструменты PERFORMANCE_SCHEMA для блокировки метаданных, но это довольно трудоемкий труд. См https://www.percona.com/blog/2016/12/28/quickly-troubleshooting-metadata-locks-mysql-5-7/
В MySQL 8.0.1 по умолчанию есть новый PERFORMANCE_SCHEMA.DATA_LOCKS для мониторинга этих блокировок. Вот пример:
mysql> select * from performance_schema.data_locks\G
*************************** 1. row ***************************
ENGINE: INNODB
ENGINE_LOCK_ID: 4874033848:1112:140194859105464
ENGINE_TRANSACTION_ID: 15171
THREAD_ID: 49
EVENT_ID: 12
OBJECT_SCHEMA: test
OBJECT_NAME: mytable
PARTITION_NAME: NULL
SUBPARTITION_NAME: NULL
INDEX_NAME: NULL
OBJECT_INSTANCE_BEGIN: 140194859105464
LOCK_TYPE: TABLE <-- TABLE lock
LOCK_MODE: IX <-- "IX" intention lock mode
LOCK_STATUS: GRANTED
LOCK_DATA: NULL
*************************** 2. row ***************************
ENGINE: INNODB
ENGINE_LOCK_ID: 4874033848:55:4:2:140194863232024
ENGINE_TRANSACTION_ID: 15171
THREAD_ID: 49
EVENT_ID: 12
OBJECT_SCHEMA: test
OBJECT_NAME: mytable
PARTITION_NAME: NULL
SUBPARTITION_NAME: NULL
INDEX_NAME: PRIMARY
OBJECT_INSTANCE_BEGIN: 140194863232024
LOCK_TYPE: RECORD
LOCK_MODE: X
LOCK_STATUS: WAITING
LOCK_DATA: 1
Также есть таблица METADATA_LOCKS :
mysql> select * from performance_schema.metadata_locks;
+-------------+--------------------+----------------+-------------+-----------------------+---------------------+---------------+-------------+-------------------+-----------------+----------------+
| OBJECT_TYPE | OBJECT_SCHEMA | OBJECT_NAME | COLUMN_NAME | OBJECT_INSTANCE_BEGIN | LOCK_TYPE | LOCK_DURATION | LOCK_STATUS | SOURCE | OWNER_THREAD_ID | OWNER_EVENT_ID |
+-------------+--------------------+----------------+-------------+-----------------------+---------------------+---------------+-------------+-------------------+-----------------+----------------+
| TABLE | test | mytable | NULL | 140194860588144 | SHARED_WRITE | TRANSACTION | GRANTED | sql_parse.cc:5820 | 48 | 26 |
...