Учебное пособие Санкт-Петербург «бхв-петербург»


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



Pdf көрінісі
бет191/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   187   188   189   190   191   192   193   194   ...   256
sql osnovi yazika

8.2. Индексы по нескольким столбцам
Индексы могут создаваться не только по одному столбцу, но и сразу по несколь-
ким. Например, индекс для поддержания первичного ключа таблицы «Перелеты»
(ticket_flights) создан по двум столбцам: ticket_no и flight_id.
Если в SQL-запросе есть предложение ORDER BY, то индекс может позволить избе-
жать этапа сортировки выбранных строк. Однако если SQL-запрос просматривает
значительную часть таблицы, то явная сортировка выбранных строк может оказаться
быстрее, чем использование индекса. Создавая индексы с целью ускорения доступа
к данным, нужно учитывать предполагаемую долю строк таблицы (селективность),
выбираемых при выполнении типичных запросов, в которых создаваемый индекс
будет использоваться. Если эта доля велика (т. е. селективность низка), тогда наличие
индекса может не дать ожидаемого эффекта. Индексы более полезны, когда из табли-
цы выбирается лишь небольшая доля строк, т. е. при высокой селективности выборки.
В случае использования предложения ORDER BY в комбинации с LIMIT явная сорти-
ровка (при отсутствии индекса) потребует обработки всех строк таблицы ради того,
чтобы определить первые строк. Но если есть индекс по тем же столбцам, по кото-
рым производится сортировка ORDER BY, то эти первые строк могут быть извлечены
непосредственно, без сканирования остальных строк вообще.
Если для таблицы «Билеты» еще не создан индекс по столбцу 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 мс
Удалите этот индекс и повторите запрос. Время его выполнения увеличится, вероят-
но, на два порядка.
246


8.3. Уникальные индексы
При создании индексов может использоваться не только возрастающий порядок зна-
чений в индексируемом столбце, но и убывающий. По умолчанию порядок возраста-
ющий, при этом значения NULL, которые также могут присутствовать в индексируе-
мых столбцах, идут последними. При создании индекса можно модифицировать по-
ведение по умолчанию с помощью ключевых слов ASC (возрастающий порядок), DESC
(убывающий порядок), NULLS FIRST (эти значения идут первыми) и NULLS LAST (эти
значения идут последними). Например:


Достарыңызбен бөлісу:
1   ...   187   188   189   190   191   192   193   194   ...   256




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

    Басты бет