Offset sql что это?
В PostgreSQL хочу показывать записи страницами по двадцать строк. Что делает OFFSET и почему без ORDER BY страницы иногда выглядят непредсказуемо?
Дом, ремонт, стройка
Животные и питомцы
Учёба и образование
Фотография
Психология
Пока нет лидеров с лучшими ответами.
Ваш вопрос
В PostgreSQL хочу показывать записи страницами по двадцать строк. Что делает OFFSET и почему без ORDER BY страницы иногда выглядят непредсказуемо?
4o
OFFSET удобно задает пропуск строк для страницы, но требует определенного порядка. В PostgreSQL LIMIT 20 OFFSET 40 возвращает до двадцати строк после первых сорока. Большое смещение может быть дорогим, а вставки между запросами способны сдвигать страницы. Поэтому для стабильного последовательного просмотра рассматривают курсорное продолжение по значениям сортировки.
4.20
В PostgreSQL OFFSET пропускает указанное число строк перед выдачей результата. Например: SELECT id, name FROM training.people ORDER BY id LIMIT 20 OFFSET 20; пропускает первые двадцать строк в порядке id и возвращает следующие двадцать, если они есть.
Порядок должен быть определенным. Если сортируете по неуникальной дате, добавьте уникальный id для разрешения совпадений. Между запросами данные могут измениться, и даже устойчивый ORDER BY не создает постоянный снимок всех страниц. У больших смещений есть цена: серверу приходится обработать и пропускаемые строки. Для последовательного просмотра больших наборов часто рассматривают продолжение от последнего просмотренного значения, учитывая все столбцы сортировки.
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Ответить на вопрос