Краткий сценарий: таблица с более чем 16 миллионами записей [размером 2 ГБ]. Чем выше смещение LIMIT в SELECT, тем медленнее становится запрос при использовании ORDER BY * primary_key *
Так
SELECT * FROM large ORDER BY `id` LIMIT 0, 30
занимает гораздо меньше, чем
SELECT * FROM large ORDER BY `id` LIMIT 10000, 30
Это только заказывает 30 записей и то же самое так или иначе. Так что это не накладные расходы от ORDER BY.
Теперь при получении последних 30 строк это занимает около 180 секунд. Как я могу оптимизировать этот простой запрос?