Большой offset может заставлять БД просматривать и отбрасывать много строк. При изменении данных между запросами возможны пропуски и дубли страниц.
Какие недостатки и особенности у пагинации через limit/offset, когда этот подход может не подойти?
Большой offset может заставлять БД просматривать и отбрасывать много строк. При изменении данных между запросами возможны пропуски и дубли страниц.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Большой offset может заставлять БД просматривать и отбрасывать много строк. При изменении данных между запросами возможны пропуски и дубли страниц.
Нужна стабильная сортировка с уникальным дополнительным ключом. Для больших последовательно просматриваемых лент часто лучше keyset/cursor-пагинация по последнему значению сортировки. Offset удобен для перехода к произвольной странице и небольших выборок; cursor тоже требует продуманного контракта при изменении ключей сортировки.