Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Postgres: keyset, pagination, cursor

Что такое курсорная пагинация и чем она лучше OFFSET?

Этот вопрос проверяет понимание курсорной пагинации и её преимуществ перед пагинацией через OFFSET.

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

Курсорная пагинация — это метод пагинации, где вместо смещения (OFFSET) используется условие на основе значения последней строки предыдущей страницы (например, WHERE id > last_id). Она лучше OFFSET, потому что работает быстрее (не требует пропуска строк) и обеспечивает согласованность при изменении данных.

Длинный ответ

Курсорная пагинация (или keyset pagination) использует фильтрацию по уникальному sequential столбцу (например, id или created_at).

Как работает:

  • Для первой страницы:

    SELECT * FROM items ORDER BY id LIMIT 10;
  • Для следующей страницы: взять id последней строки предыдущей страницы и использовать в условии:

    SELECT * FROM items WHERE id > last_id ORDER BY id LIMIT 10;

Преимущества перед OFFSET:

  1. Производительность: Запрос использует индекс для быстрого поиска, не пропуская строки.

  2. Согласованность: Даже если данные добавляются/удаляются, страницы remain consistent, так как фильтрация основана на значениях, а не позициях.

  3. Масштабируемость: Подходит для больших datasets.

Ограничения:

  • Требуется unique sequential column для ordering.

  • Не поддерживает random access к страницам (только next/previous).

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Postgres

    Postgres

Ключевые слова

#keyset

#pagination

#cursor

Подпишись на Python Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.