Я оптимизировал запрос на моем тестовом сервере, который имеет те же индексы, что и живой сервер. И когда я объясняю запрос на обоих серверах, я получаю другой используемый индекс.
Это не просто небольшая разница, это индекс, который совсем не подходит.
Это мой запрос
SELECT count(Pads.PadID) AS CountOfPadID FROM Pads WHERE ((
RemoveMeDate='2001-01-01 00:00:00') AND (catid between 0 and 11))
ORDER BY VersionAddDate DESC;
Объяснение тестового сервера
Живой сервер объяснить
Вот индексы на работающем сервере, вы можете видеть, что индекс Cats никак не связан с полями, используемыми в запросе.
Я пытался USE INDEX (sitempacats)
, который работает, но я просто озадачен, почему он это сделал?