Выбор ответа Middle Проектирование API обновлено
Минус cursor-пагинации
Вопрос
Какой недостаток есть у cursor-пагинации по сравнению с offset?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Нельзя сразу перейти на произвольную страницу, например на 37-ю. Курсор указывает на конкретную позицию, поэтому можно идти только вперёд или назад от неё.
Варианты ответа
- Медленнее на больших глубинах: базе приходится пропускать все строки до курсора
- Не работает с индексами, поэтому каждый запрос превращается в полный перебор таблицы
- Дублирует элементы при вставках новых записей между запросами страниц
- Нельзя сразу перейти на произвольную страницу, например на 37-юправильный ответ
Разбор
Курсор указывает на конкретную позицию, поэтому можно идти только вперёд или назад от неё. Остальные варианты это как раз недостатки offset: медленный большой OFFSET и дубли при вставках. Cursor-запрос WHERE (created_at, id) < ... наоборот хорошо работает по индексу.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.