LIMIT / OFFSET
LIMIT ограничивает количество возвращаемых строк. OFFSET пропускает первые N строк.
SELECT ... FROM table ORDER BY col LIMIT n OFFSET m;
Объяснение
Пример
-- Страница 3 (по 20 записей) SELECT * FROM posts ORDER BY created_at DESC LIMIT 20 OFFSET 40; -- Быстрая keyset-пагинация SELECT * FROM posts WHERE id < $last_id ORDER BY id DESC LIMIT 20;
Связанные термины
Анекдоты по теме
— Что такое materialized path для деревьев? — Храним путь от корня в строке: '1/4/7/12' — Поиск всех потомков: WHERE path LIKE '1/4/%' — Плюсы? — Простота. Быстрый поиск поддерева. — Минусы? — Перемещение узла — обновить все потомки. — Альтернативы? — nested sets, closure table, рекурсивный CTE.
Разработчик: — У меня запрос на 8 таблиц через JOIN, подзапросы, оконные функции внутри WHERE и GROUP BY на хэш с миллиардом строк. Он идёт 3 дня. Как оптимизировать? DBA: — TRUNCATE TABLE карьера_разработчика. И иди в менеджеры.
— Как быстро вставить миллион строк? — COPY FROM или INSERT с многострочным VALUES вместо тысячи отдельных INSERT. — В чём разница? — Каждый INSERT — отдельная транзакция и roundtrip. COPY передаёт всё одним потоком. — Насколько быстрее? — В 10–100 раз.