Исходный код вики Пагинация | Paging
Редактировал(а) Alexandr Fokin 2024/03/20 11:00
Последние авторы
| author | version | line-number | content |
|---|---|---|---|
| 1 | |(% style="width:95px" %) |(% style="width:1390px" %)Пагинация, Paging, Pagination | ||
| 2 | |(% style="width:95px" %) |(% style="width:1390px" %)((( | ||
| 3 | [[Индексы>>doc:Разработка.Базы данных.Механизмы.Индексы.WebHome]], [[План выполнения запроса>>doc:Разработка.Базы данных.SQL.Механизмы.План выполнения запроса.WebHome]] | ||
| 4 | ))) | ||
| 5 | |(% style="width:95px" %) |(% style="width:1390px" %)((( | ||
| 6 | Почему нужна инструментальная поддержка пагинации на ключах | ||
| 7 | [[https:~~/~~/habr.com/ru/companies/tinkoff/articles/485036/>>url:https://habr.com/ru/companies/tinkoff/articles/485036/]] | ||
| 8 | |||
| 9 | Пять способов пагинации в [[Postgres>>doc:Разработка.Базы данных.SQL.PostgreSQL.WebHome]], от базовых до диковинных | ||
| 10 | [[https:~~/~~/habr.com/ru/articles/301044/>>https://habr.com/ru/articles/301044/]] | ||
| 11 | ))) | ||
| 12 | |(% style="width:95px" %) |(% style="width:1390px" %)((( | ||
| 13 | |(% style="width:254px" %)Страничная пагинация. | ||
| 14 | Offset|(% style="width:1118px" %) | ||
| 15 | |(% style="width:254px" %)Пагинация на ключах. | ||
| 16 | Keyset, seek. | ||
| 17 | (иногда еще называют cursor).|(% style="width:1118px" %)((( | ||
| 18 | |(% style="width:84px" %) |(% style="width:1015px" %) | ||
| 19 | |(% style="width:84px" %)Пример 1|(% style="width:1015px" %){{code language="sql"}}select * | ||
| 20 | from <testTable> | ||
| 21 | where | ||
| 22 | <column1> >= <value1> | ||
| 23 | and <column_id> > <value_id> | ||
| 24 | and <column3> > <value3> | ||
| 25 | order by <column1>, <column_id> | ||
| 26 | limit 1000{{/code}}((( | ||
| 27 | |||
| 28 | |||
| 29 | Исходные: есть таблица <testTable> со следующим индексом (<column1>, <column_id>). | ||
| 30 | |||
| 31 | Выполнение: при таком запросе пагинация по столбцам <column1>, <column_id> пройдет через индекс, а условие по столбцу <column3> будет выполняться через фильтрацию (перебор): Index Cond + Filter. | ||
| 32 | Если убрать условие со столбцом <column3> то вся выборка пройдет через индекс (без дополнительного поиска): Index Cond. | ||
| 33 | ))) | ||
| 34 | |||
| 35 | |||
| 36 | ))) | ||
| 37 | |(% style="width:254px" %) |(% style="width:1118px" %) | ||
| 38 | ))) | ||
| 39 | |(% style="width:95px" %) |(% style="width:1390px" %) | ||
| 40 | |||
| 41 | ---- | ||
| 42 | |||
| 43 | ==== Внутренние ссылки: ==== | ||
| 44 | |||
| 45 | ====== Дочерние страницы: ====== | ||
| 46 | |||
| 47 | {{children/}} | ||
| 48 | |||
| 49 | ====== Обратные ссылки: ====== | ||
| 50 | |||
| 51 | {{velocity}} | ||
| 52 | #set ($links = $doc.getBacklinks()) | ||
| 53 | #if ($links.size() > 0) | ||
| 54 | #foreach ($docname in $links) | ||
| 55 | #set ($rdoc = $xwiki.getDocument($docname).getTranslatedDocument()) | ||
| 56 | * [[$escapetool.xml($rdoc.fullName)]] | ||
| 57 | #end | ||
| 58 | #else | ||
| 59 | No back links for this page! | ||
| 60 | #end | ||
| 61 | {{/velocity}} | ||
| 62 | |||
| 63 | ---- |