Рассмотрим это UPDATE
утверждение:
UPDATE `messages` force index (primary)
SET `isDeleted`=1
WHERE `messages`.`id` = '069737b6-726d-4f5b-a5b9-0510acdd7a92';
Вот график объяснения для него:
Почему это так просто запрос использует сканирование диапазона индекса вместо выборки по одной строке или, по крайней мере, по уникальной выборке ключа? Обратите внимание, что я использую FORCE INDEX
, и точно такой же запрос, написанный как оператор SELECT
, приводит к сканированию "Однорядная (постоянная)".
То же самое происходит, если я добавляю LIMIT 1
I пользуюсь mysql 5.6.46