Нормально, что более высокие смещения замедляют запрос вниз, так как запрос должен отсчитывать первые записи OFFSET + LIMIT
(и брать только LIMIT
из них). Чем выше это значение, тем дольше выполняется запрос.
Запрос не может перейти к OFFSET
, потому что, во-первых, записи могут иметь разную длину, и, во-вторых, могут быть пробелы, удаленные записей.
Предполагая, что id
является PRIMARY KEY
таблицы MyISAM
, вы можете ускорить его, используя этот трюк:
SELECT t.*
FROM (
SELECT id
FROM mytable
ORDER BY
id
LIMIT 10000, 30
) q
JOIN mytable t
ON t.id = q.id
См. эту статью: