@player1_serg

Почему не работает оптимизация LIMIT OFFSET?

Есть таблица с 500к+ записей с двумя столбцами id и value. Обычный запрос с LIMIT OFFSET просматривает все записи до лимита. Пытаюсь делать оптимизацию с JOIN, как тут habrahabr.ru/post/217521/. Однако просматриваются столько же записей. Индекс на столбце id - PRIMARY. 8ca6632d40454c9bb736f89b382bfb06.png
  • Вопрос задан
  • 650 просмотров
Пригласить эксперта
Ответы на вопрос 2
myfirepukan
@myfirepukan
Жарим поиск
Так а время запроса озвучьте, я тогда делал LIMIT OFFSET на таблице с миллионом записей и всё норм, да время увеличивалось по сравнению с первой, но в 0,1 сек вроде укладывался
Ответ написан
AxisPod
@AxisPod
Патамушта сортировка. Пока не отсортирует, применить limit не сможет, в MyISAM явно, кластерные индексы отсутствуют. В InnoDB возможно при сортировке по кластерному индексу сможет. Какой движок у таблицы?

Ну и да, вы не заметили, что в указанной вами статье отсутствует сортировка у внешнего запроса? Вложенный запрос потребует временную таблицу, да и сортировка потребует его же, так что оптимизация тут странная всё же.

Ну и лимит естественно будет смотреть от начала, а не от той позиции. что вы попросили. А уж еще навязывание индекса редко к доброму результату приводит.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы