Попробуйте , а не , используя любые индексы.
Сколько всего строк в таблице?
Я заметил, что вы ищете 10 тыс. Строк из примерно 48 тыс. Строк, совпадающих только с RemoveMeDate - таблица должна быть большой или вы должны выбирать большую часть таблицы.
SELECT PageName
FROM pads USE INDEX()
WHERE RemoveMeDate = '2001-01-01 00:00:00'
ORDER BY PadID DESC
LIMIT 20000 , 30000
Отсутствие каких-либо индексов вынуждает его просто сканировать таблицу.
Теперь, если это не помогает и медленнее, попробуйте создать определенный индекс, который упорядочивает DESC, например попробуйте один из двух ниже
CREATE INDEX IX_pads_rmd_iddesc ON pads (RemoveMeDate, PadID DESC, PageName)
CREATE INDEX IX_pads_rmd_iddesc ON pads (RemoveMeDate, PadID DESC)
В сочетании с FORCE INDEX, если он не выбран автоматически
SELECT PageName
FROM pads USE INDEX(IX_pads_rmd_iddesc)
WHERE RemoveMeDate = '2001-01-01 00:00:00'
ORDER BY PadID DESC
LIMIT 20000 , 30000
Обратите внимание, что хотя индексы и создают "PadID DESC", MySQL игнорирует их. Можно надеяться, что однажды, когда он будет реализован, он встанет на свои места.
Спецификация index_col_name может
заканчивается ASC или DESC. Эти ключевые слова
разрешены для будущих расширений
для указания возрастания или убывания
хранение значений индекса. В настоящее время они
анализируются, но игнорируются; значения индекса
всегда хранятся в порядке возрастания.