Mysql изменить тип плана запроса
Привет у меня есть такой запрос
SELECT (SELECT CSN FROM apps as b WHERE
a.key1=b.key1 AND a.key2 = b.key2 AND b.seq=MAX(b.seq) LIMIT 0,1) AS CSN,
a.key1
FROM apps as a GROUP BY key1, key2
Теперь, когда я использую EXPLAIN, я получаю, что типом является range, а extras - "Использование индекса для группировки". Этот план занимает 10 секунд, чтобы выполнить 350 000 строк таблицы. Однако иногда это занимает всего 4 секунды, и план выполнения имеет тип: index и extra: using where
Итак, вопрос в том, почему это происходит, когда план первый и второй, и могу ли я каким-то образом изменить план?
1 ответ
Хорошо, я понял это. Статистика InnoDB, вероятно, была отключена. Я позвонил в Анализ таблицы, чтобы обновить статистику, и теперь она вернулась к более низкому числу.