Для больших списков используют keyset/cursor pagination: следующая порция выбирается после последнего ключа предыдущей. Это удобнее глубокого OFFSET и подходит lazy loading.
Знаешь ли ты другие подходы к пагинации помимо LIMIT/OFFSET? Например, для lazy loading.
Для больших списков используют keyset/cursor pagination: следующая порция выбирается после последнего ключа предыдущей. Это удобнее глубокого OFFSET и подходит lazy loading.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для больших списков используют keyset/cursor pagination: следующая порция выбирается после последнего ключа предыдущей. Это удобнее глубокого OFFSET и подходит lazy loading.
Например, при ORDER BY created_at, id курсор хранит оба значения, а WHERE выбирает лексикографически следующие записи. Нужны устойчивый уникальный порядок и подходящий индекс. Курсор не гарантирует неизменный снимок при обновлениях данных и не даёт дешёвого перехода на произвольную страницу.