Mysql запрос плана выполнения имеет кэширование?

Я везде искал свою проблему, но не нашел однозначного ответа.
База данных: MySQL
Даны три числовых поля a, b, c и одна дата-время, поданные d, все проиндексированы отдельно
В таблице участвуют 10 мил. записей.

Два числа n, m

У меня есть базовый запрос:

select * where (a=n or b=n) and c IN(m) Order by d DESC

(n может быть любым числом, m может быть любым числом от 1 до 9)
У меня также есть отдельный индекс для каждого из них. Я пробовал индексы на AC и BC, но безуспешно.

В моей среде разработки я всегда получаю слияние индексов, что делает запрос быстрым, даже если он создает файловую сортировку по какой-то причине, которая меня не особо волнует.

Но на производстве (другая одна и та же схема / данные) этого не происходит, что бы я ни делал.

Моим обходным решением этой странной проблемы было превращение запроса в следующий оператор:

От:

select * where (a=n or b=n) and c IN(m) ORDER BY d desc

Для того, чтобы:

select * where (a=n or b=n) and c IN(m,'m') ORDER BY d desc

И это также привело к запросу индекса слияния в производственной среде
что для меня в основном означает, что где-то есть кэш плана выполнения, и я не могу понять, где очистить этот кэш (если он действительно есть)

Мне нужно знать, как я могу указать производственной среде правильно использовать этот индекс в первом операторе.

Как примечание … по какой-то причине запрос объяснения говорит мне, что d — это индекс, используемый при производстве при объяснении запроса.

3

Решение

Мне нужно знать, как я могу указать производственной среде правильно использовать этот индекс в первом операторе.

Используйте синтаксис «индекс силы».

Если вы вставите CREATE TABLE & ОБЪЯСНИТЕ вывод для таблиц & вовлеченные запросы (соответственно) на dev & производство мы можем сузить до пары вещей. Может также помочь узнать оперативную память, доступную на каждой машине.

пс:

В моей среде разработки я всегда получаю слияние индексов, что делает запрос быстрым, даже если он создает файловую сортировку по какой-то причине, которая меня не особо волнует.

сортировка по д, которого нет в вашем индексе

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]