SQL · LIMIT / OFFSET · База данных компаний
LIMIT и OFFSET для выборки компаний
Таблица «companies» — 300 строк детерминированно сгенерированных данных. Показанный ниже LIMIT / OFFSET реально выполнен движком FileDB: 10 строк в результате, 1.8 мс на выполнение, полным сканом таблицы.
Структура таблицы companies
Поля и типы данных
| Поле | Тип | Nullable | Индекс |
|---|---|---|---|
id | int | нет | да (PK) |
name | varchar(80) | нет | — |
city | varchar(80) | нет | — |
industry | varchar(80) | нет | — |
founded_year | int (1991–2023) | нет | — |
employees_count | int (5–5000) | нет | — |
revenue_mln | real | нет | — |
website | varchar(80) | нет | — |
phone | varchar(80) | нет | — |
email | varchar(80) | нет | — |
is_active | boolean | нет | — |
legal_form | varchar(80) | нет | — |
tax_id | varchar(80) | нет | — |
rating | real | нет | — |
registered_date | date | нет | — |
Пример строк (8 из 300)
| id | name | city | industry | founded_year | employees_count | revenue_mln | website | phone | is_active | legal_form | tax_id | rating | registered_date | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 143 | Синтез-Строй | Челябинск | Логистика | 2012 | 549 | 3986.21 | smartstroy.org | +7 (936) 618-01-73 | user8608@example.com | false | ООО | 5456003 | 1 | 2026-06-08 |
| 144 | ЗенитКонсалт | Екатеринбург | Финансы | 2001 | 2403 | 8893.41 | novaprom.ru | +7 (946) 942-71-52 | user1745@example.com | false | ЗАО | 4234001 | 2.66 | 2026-02-22 |
| 145 | СтолицаДизайн | Краснодар | Медицина | 2011 | 3807 | 6685.88 | rusprom.biz | +7 (962) 304-40-39 | user8035@example.com | true | ООО | 9123004 | 1.26 | 2025-10-22 |
| 146 | Регион-Логистик | Ижевск | Медицина | 1993 | 1800 | 3530.57 | bestline.ru | +7 (974) 461-68-65 | user4287@example.com | true | ООО | 4123012 | 1.60 | 2025-12-12 |
| 147 | Статус-Медиа | Ижевск | Строительство | 2012 | 1858 | 7027.55 | smartservis.org | +7 (931) 982-99-82 | user2843@example.com | false | ООО | 7034013 | 2.97 | 2026-01-30 |
| 148 | НордСтрой | Воронеж | Реклама | 1995 | 677 | 1853.93 | techcorp.ru | +7 (900) 247-80-24 | user2607@example.com | true | НКО | 7123002 | 4.43 | 2025-11-11 |
| 149 | ЛидерДизайн | Волгоград | Строительство | 2004 | 1493 | 4537.51 | megagroup.com | +7 (902) 749-60-81 | user1327@example.com | false | ЗАО | 2456011 | 2.59 | 2025-12-12 |
| 150 | Вектор-Маркет | Уфа | IT | 2005 | 3379 | 668.83 | proplus.biz | +7 (978) 650-89-43 | user6637@example.com | true | ЗАО | 4123010 | 1.33 | 2026-05-23 |
SQL-запрос: LIMIT / OFFSET
Задача: показать одну страницу списка — классическая пагинация через LIMIT и OFFSET.
Результат выполнения
В результате 10 строк из 300 (около 3%). Если бы условие возвращало почти всю таблицу, фильтр был бы бесполезен; ноль строк — повод проверить значения в данных, а не синтаксис.
Первые строки результата
| id | name | city | industry | founded_year | employees_count | revenue_mln | website | phone | is_active | legal_form | tax_id | rating | registered_date | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 126 | Прогресс-Агро | Санкт-Петербург | Реклама | 2021 | 1303 | 4888.76 | megatrade.ru | +7 (934) 028-82-70 | user6094@example.com | false | ООО | 9789009 | 2.43 | 2025-11-29 |
| 127 | Мега-Маркет | Саратов | Логистика | 2010 | 2692 | 5314.38 | ecostroy.biz | +7 (939) 636-50-50 | user6883@example.com | false | АО | 3567025 | 2.04 | 2025-11-22 |
| 128 | НордОйл | Санкт-Петербург | Образование | 1999 | 684 | 1049.87 | smartplus.com | +7 (935) 534-07-73 | user7876@example.com | true | ПАО | 5345030 | 1.04 | 2025-10-03 |
| 129 | РусМедиа | Екатеринбург | Производство | 1995 | 1689 | 5413.46 | alfastroy.org | +7 (944) 186-72-32 | user5358@example.com | true | АО | 3789014 | 2.16 | 2026-05-30 |
| 13 | МегаАгро | Волгоград | Логистика | 1996 | 1846 | 477.10 | megagroup.biz | +7 (949) 437-50-61 | user1830@example.com | false | ПАО | 4789005 | 2.21 | 2025-11-17 |
Показаны 5 из 10 строк результата.
Как читать этот запрос
LIMIT ограничивает число возвращаемых строк, OFFSET пропускает первые N — вместе они дают классическую постраничную выдачу. Важно: без ORDER BY пагинация нестабильна, строки могут «прыгать» между страницами.LIMIT / OFFSET в разных СУБД
| СУБД | Синтаксис | Отличие |
|---|---|---|
| PostgreSQL | LIMIT 10 OFFSET 20 | также поддерживает FETCH FIRST из стандарта |
| MySQL | LIMIT 20, 10 | две формы: LIMIT offset, count и LIMIT count OFFSET offset |
| SQLite | LIMIT 10 OFFSET 20 | идентичный синтаксис |
| FileDB | LIMIT 10 OFFSET 20 | как в PostgreSQL |
Скачать структуру и данные
Файлы собираются из текущего датасета (seed v1): структура таблицы, 300 строк данных и этот запрос.
Похожие запросы
Вопросы и ответы
Почему пагинация через OFFSET медленная на глубоких страницах?
OFFSET заставляет движок прочитать и отбросить все пропускаемые строки. Для глубокой пагинации быстрее keyset-подход: WHERE id > последний_показанный ORDER BY id LIMIT n.
Обязателен ли ORDER BY при LIMIT?
Практически — да: без сортировки «первые 10 строк» — это случайные 10 строк, и на следующей странице возможны дубли и пропуски.
Что будет, если OFFSET больше числа строк?
Просто пустой результат, без ошибки — удобно для «конца ленты», но легко принять за баг.