Skanowanie indeksów
Twój znajomy mieszka na Hawajach, gdzie wulkaniczne smogi zaostrzają jego astmę. Pomagasz mu znaleźć nowe miejsce do zamieszkania, korzystając z danych o jakości powietrza na poziomie hrabstw, zebranych przez Agencję Ochrony Środowiska. Postanawiacie, że nowy dom powinien znajdować się w miejscu, gdzie jakość powietrza jest dobra przez co najmniej 90% dni w roku.
Wiesz, że hrabstw w USA jest bardzo dużo, a tabela z danymi o jakości powietrza jest duża. Pierwsze zapytanie (nieprzedstawione tutaj) wykonało sekwencyjne skanowanie i działało bardzo długo.
Decydujesz się dodać indeks do kolumny śledzącej liczbę dni z dobrą jakością powietrza. Przeanalizuj plan zapytania i sprawdź, jakiego rodzaju skanowanie zostało zastosowane.
To ćwiczenie jest częścią kursu
Optymalizacja wydajności zapytań w PostgreSQL
Instrukcje do ćwiczenia
- Utwórz indeks dla tabeli
annual_aqina kolumniegood. - Uwzględnij tylko wyniki, w których jakość powietrza jest
goodprzez co najmniej 90% roku. - Ogranicz dane do ostatnich lat, filtrując
aqi_yeardo wartości 2017 i 2018.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
CREATE INDEX good_index
ON ___(___);
EXPLAIN
SELECT state_name, county_name, aqi_year, good
FROM annual_aqi
WHERE ___ > 327 -- 90% of the year
AND ___ IN (___,___);