Карточка Middle SELECT и фильтрация обновлено

Keyset-пагинация

Вопрос

Что такое keyset-пагинация?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

Постраничная выборка не по номеру страницы, а «после последнего увиденного ключа»: WHERE (createdat, id) < ($1, $2) ORDER BY createdat DESC, id DESC LIMIT 20. Работает за одно обращение к индексу независимо от глубины, но не позволяет прыгнуть сразу на страницу N.

Ответ

Постраничная выборка не по номеру страницы, а «после последнего увиденного ключа»: WHERE (created_at, id) < ($1, $2) ORDER BY created_at DESC, id DESC LIMIT 20. Работает за одно обращение к индексу независимо от глубины, но не позволяет прыгнуть сразу на страницу N.

Разбор

Постраничная выборка не по номеру страницы, а «после последнего увиденного ключа»: WHERE (created_at, id) < ($1, $2) ORDER BY created_at DESC, id DESC LIMIT 20. Работает за одно обращение к индексу независимо от глубины, но не позволяет прыгнуть сразу на страницу N.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.