Перепиши запрос пагинации используя cursor-подход (клиент передаёт последний известный ID).

При уникальном возрастающем id следующая страница выбирается условием id > last_id и LIMIT 50. ORDER BY id должен совпадать с направлением курсора.

Короткий ответ

Что ответить на собеседовании

При уникальном возрастающем id следующая страница выбирается условием id > last_id и LIMIT 50. ORDER BY id должен совпадать с направлением курсора.

Подробный разбор

Ответ с пояснениями

При уникальном возрастающем id следующая страница выбирается условием id > last_id и LIMIT 50. ORDER BY id должен совпадать с направлением курсора.

SELECT id, title
FROM books
WHERE id > $1
ORDER BY id
LIMIT 50;

Для первой страницы выполните тот же запрос без WHERE. При сортировке по другому полю курсор должен включать его и уникальный tie-breaker. Пропуски id не мешают работе; произвольный переход на страницу N такой курсор не предоставляет.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее