Изменения документа Пагинация | Paging
Редактировал(а) Alexandr Fokin 2024/03/20 11:00
<
отредактировано Alexandr Fokin
на 2024/01/16 22:45
на 2024/01/16 22:45
отредактировано Alexandr Fokin
на 2024/03/20 11:00
на 2024/03/20 11:00
Изменить комментарий:
К данной версии нет комментариев
Комментарий
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -1,7 +1,6 @@ 1 +|(% style="width:95px" %) |(% style="width:1390px" %)Пагинация, Paging, Pagination 1 1 |(% style="width:95px" %) |(% style="width:1390px" %)((( 2 -[[Индексы>>doc:Разработка.Базы данных.Механизмы.Индексы.WebHome]] 3 - 4 -[[План выполнения запроса>>doc:Разработка.Базы данных.SQL.Механизмы.План выполнения запроса.WebHome]] 3 +[[Индексы>>doc:Разработка.Базы данных.Механизмы.Индексы.WebHome]], [[План выполнения запроса>>doc:Разработка.Базы данных.SQL.Механизмы.План выполнения запроса.WebHome]] 5 5 ))) 6 6 |(% style="width:95px" %) |(% style="width:1390px" %)((( 7 7 Почему нужна инструментальная поддержка пагинации на ключах ... ... @@ -11,27 +11,31 @@ 11 11 [[https:~~/~~/habr.com/ru/articles/301044/>>https://habr.com/ru/articles/301044/]] 12 12 ))) 13 13 |(% style="width:95px" %) |(% style="width:1390px" %)((( 14 -|(% style="width:282px" %)Страничная пагинация, offset|(% style="width:958px" %) 15 -|(% style="width:282px" %)Пагинация на ключах, keyset, seek|(% style="width:958px" %)((( 16 -|(% style="width:130px" %) |(% style="width:809px" %) 17 -|(% style="width:130px" %)Пример 1|(% style="width:809px" %){{code language="sql"}}select * 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 * 18 18 from <testTable> 19 19 where 20 - <column1> > <value1> 21 - and <column 2> > <value2>22 + <column1> >= <value1> 23 + and <column_id> > <value_id> 22 22 and <column3> > <value3> 23 -order by <column1>, <column 2>25 +order by <column1>, <column_id> 24 24 limit 1000{{/code}}((( 25 25 26 26 27 -Исходные: есть таблица <testTable> со следующим индексом (<column1>, <column 2>).29 +Исходные: есть таблица <testTable> со следующим индексом (<column1>, <column_id>). 28 28 29 -Выполнение: при таком запросе пагинация по столбцам <column1>, <column2> пройдет через индекс, а условие по столбцу <column3> будет выполняться через фильтрацию (перебор). Если убрать условие со столбцом <column3> то вся выборка пройдет через индекс (без дополнительного поиска). 31 +Выполнение: при таком запросе пагинация по столбцам <column1>, <column_id> пройдет через индекс, а условие по столбцу <column3> будет выполняться через фильтрацию (перебор): Index Cond + Filter. 32 +Если убрать условие со столбцом <column3> то вся выборка пройдет через индекс (без дополнительного поиска): Index Cond. 30 30 ))) 31 31 32 32 33 33 ))) 34 -|(% style="width:2 82px" %) |(% style="width:958px" %)37 +|(% style="width:254px" %) |(% style="width:1118px" %) 35 35 ))) 36 36 |(% style="width:95px" %) |(% style="width:1390px" %) 37 37