Учебно-практическое пособие москва 2017 ббк


 Индексы по нескольким столбцам



Pdf көрінісі
бет186/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   182   183   184   185   186   187   188   189   ...   243
Байланысты:
Язык SQL. Базовый курс

8.2 Индексы по нескольким столбцам
Индексы могут создаваться не только по одному столбцу, но и по нескольким. Напри-
мер, индекс для поддержания первичного ключа таблицы «Перелеты» (ticket_flights)
создан по двум столбцам: ticket_no и flight_id.
Если в SQL-запросе есть предложение ORDER BY, то индекс может позволить избе-
жать этапа сортировки выбранных строк. Однако если SQL-запрос просматривает
значительную часть таблицы, то явная сортировка выбранных строк может оказаться
быстрее, чем использование индекса. Создавая индексы с целью ускорения доступа
к данным, нужно учитывать предполагаемую долю строк таблицы (селективность),
выбираемых при выполнении типичных запросов, в которых создаваемый индекс
будет использоваться. Если эта доля велика (т. е. селективность — низкая), тогда на-
личие индекса может не дать ожидаемого эффекта. Индексы более полезны, когда
191


из таблицы выбирается лишь небольшая доля строк, т. е. при
высокой селективности
выборки. В случае использования предложения ORDER BY в комбинации с LIMIT
n
явная сортировка (при отсутствии индекса) потребует обработки всех строк таблицы
ради того, чтобы определить первые
n
строк. Но если есть индекс по тем же столбцам,
по которым производится сортировка ORDER BY, то эти первые
n
строк могут быть
извлечены непосредственно, без сканирования остальных строк вообще.
Если для таблицы «Билеты» (tickets) еще не создан индекс по столбцу book_ref, то со-
здайте его:
CREATE INDEX tickets_book_ref_test_key
ON tickets ( book_ref );
CREATE INDEX
Выполните запрос, в котором используется предложение LIMIT:
SELECT * FROM tickets ORDER BY book_ref LIMIT 5;
...
Время: 0,442 мс
Удалите этот индекс и повторите запрос. Время его выполнения увеличится, вероят-
но, на два порядка.
При создании индексов может использоваться не только возрастающий порядок зна-
чений в индексируемом столбце, но также и убывающий. По умолчанию порядок воз-
растающий, при этом значения NULL, которые также могут присутствовать в индек-
сируемых столбцах, идут последними. При создании индекса можно модифициро-
вать поведение по умолчанию с помощью ключевых слов ASC (возрастающий поря-
док), DESC (убывающий порядок), NULLS FIRST (эти значения идут первыми) и NULLS
LAST (эти значения идут последними). Например:


Достарыңызбен бөлісу:
1   ...   182   183   184   185   186   187   188   189   ...   243




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет