Я пишу запрос, который обновляет со следующим синтаксисом:Mysql использование индекса в случае, когда синтаксис
UPDATE foo SET col1 = CASE col2
WHEN 1 THEN 3
WHEN 2 THEN 9
...
ELSE col1 END
WHERE col2 IN (1,2...)
Обратите внимание, что там могут быть тысячи случаев когда тогда. EXPLAIN показывает, что PK будет использоваться для предложения IN, но как база данных вычисляет CASE/WHEN после того, как она фильтрует на основе предложения IN - сканирует ли она все или использует хэш? Я не думаю, что это было бы явным в EXPLAIN (например, без предложения IN).