Предположим, что структура таблицы:
CREATE TABLE `single_uk` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`uk` bigint(20) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_biz` (`uk`)
) ENGINE=InnoDB AUTO_INCREMENT=111554 DEFAULT CHARSET=utf8
Текущие данные:
111502 | 2020-03-12 08:35:09 | 2020-03-12 08:35:09 | 100
Уровень изоляции: RR.
После выполнения оператора: insert ignore into single_uk (uk) value (100)
Начиная с performance_schema.data_locks
, мы видим, что у нас есть следующие блокировки:

Блокировка таблицы IX и S следующая- ожидается блокировка клавиш на дублированном ряду. Что я не могу понять, так это почему InnoDB добавит блокировку X gap до supremum pseudo-record