ОсновыНачальный
LIMIT / OFFSET
LIMIT ограничивает количество возвращаемых строк. OFFSET пропускает первые N строк.
Синтаксис
SELECT ... FROM table ORDER BY col LIMIT n OFFSET m;
Объяснение
LIMIT и OFFSET используются для пагинации результатов.
Важно: OFFSET N заставляет базу прочитать N+LIMIT строк и выбросить первые N. На больших страницах это медленно. Для production-пагинации используй keyset pagination: WHERE id > $last_id ORDER BY id LIMIT n.
Пример
-- Страница 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;
Связанные термины
Анекдоты по теме
— Что такое партиционирование? — Разбить одну большую таблицу на несколько меньших по какому-то признаку. — Например? — По дате: orders_2023, orders_2024. Запрос за 2024 год читает только одну партицию. — Это же просто несколько таблиц! — Но с прозрачным доступом через одно имя.
— Почему важно закрывать курсоры? — Открытый курсор держит транзакцию и память. — Что будет, если не закрыть? — При тысяче открытых курсоров база начнёт задыхаться. — Как с файловыми дескрипторами? — Точная аналогия.
— Почему мой запрос не находит «Иванов»? — Покажи WHERE. — WHERE name = 'иванов' — Регистр. — О. — Используй ILIKE или LOWER().