Руководство по созданию эффективных запросов


Рис. 5.15   Составной индекс не используется, если условие не включает первый столбец индекса Покрывающие индексы



Download 17,08 Mb.
Pdf ko'rish
bet67/210
Sana25.06.2022
Hajmi17,08 Mb.
#704548
TuriРуководство
1   ...   63   64   65   66   67   68   69   70   ...   210
Bog'liq
OptimizZaprvPostgreSQL

Рис. 5.15 

Составной индекс не используется,
если условие не включает первый столбец индекса
Покрывающие индексы
Покрывающие индексы появились в PostgreSQL 11. Эти индексы можно рас-
сматривать как развитие идеи сканирования только индекса. Они специаль-
но разработаны для включения в индекс столбцов, необходимых для частых 
запросов определенного вида.
В предыдущем разделе к индексу был добавлен столбец 
schedule_arrival
исключительно для того, чтобы избежать лишнего обращения к таблице. Он 
не был предназначен для поиска по нему. В таком случае вместо обычного 
можно использовать покрывающий индекс:
CREATE INDEX flight_depart_arr_sched_dep_inc_sched_arr
ON flight (departure_airport,
arrival_airport,
scheduled_departure)
INCLUDE (scheduled_arrival);
План выполнения запроса
SELECT departure_airport,
scheduled_departure,
scheduled_arrival
FROM flight
WHERE arrival_airport = 'JFK'
AND departure_airport ='ORD'
AND scheduled_departure BETWEEN '2020-07-03' AND '2020-07-04'
показан на рис. 5.16.


Избыточные критерии отбора 

85
Рис. 5.16 

План со сканированием только покрывающего индекса
В таких случаях нет большой разницы между включением дополнитель-
ного столбца в индекс по сравнению с созданием покрывающего индекса. 
Однако если вместе с индексированными значениями нужно хранить больше 
столбцов (или столбцы будут шире), покрывающий индекс, вероятно, будет 
более компактным.
и
зБыточные
 
критерии
 
отБора
Иногда, если логика фильтрации сложна и включает атрибуты из нескольких 
таблиц, необходимо предоставить дополнительные избыточные фильтры, 
чтобы движок базы данных использовал определенные индексы или умень-
шил размер соединеняемых наборов строк. Такая практика называется ис-
пользованием избыточных критериев отбора. Идея состоит в том, чтобы 
использовать этот дополнительный фильтр для предварительного выбора 
небольшого подмножества записей из большой таблицы.
Для некоторых из таких сложных критериев PostgreSQL может переписать 
запрос автоматически.
Например, условия фильтрации в запросе в лис тинге 5.10 объединяют зна-
чения атрибутов из таблиц 
flight
и 
passenger
. В ранних версиях PostgreSQL 
движок не мог начать фильтрацию до соединения всех таблиц, потому что 
оператор «и» применяется к столбцам разных таблиц.

Download 17,08 Mb.

Do'stlaringiz bilan baham:
1   ...   63   64   65   66   67   68   69   70   ...   210




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish