SELECT ... LIMIT 20 OFFSET 200. Прост, но замедляется на больших офсетах: БД всё равно сканирует часть таблицы, чтобы пропустить первые 200 строкWHERE id > {last_id} LIMIT 20. Стабильная скорость независимо от глубины пагинации. Рекомендуемый подход для больших таблиц и real-time feedsВозвращайте метаданные вместе с данными: текущая страница, всего элементов, ссылки на следующую/предыдущую. Для cursor-based — токен следующего курсора.
{
"data": [...],
"meta": { "total": 1240, "per_page": 20, "next_cursor": "abc123" }
}