Scansioni tramite indice
Il tuo amico vive alle Hawaii, dove lo smog vulcanico aggrava la sua asma. Lo aiuti a cercare nuove zone in cui vivere usando i dati sulla qualità dell’aria a livello di contea dell’Environmental Protection Agency. Decidi che la sua nuova casa dovrebbe avere una buona qualità dell’aria per almeno il 90% dei giorni.
Sai che ci sono molte contee negli USA e la tabella sulla qualità dell’aria è grande. La tua prima query (non mostrata) ha eseguito una scansione sequenziale e ha impiegato molto tempo.
Decidi quindi di aggiungere un indice alla colonna che tiene traccia del numero di giorni con buona qualità dell’aria. Esamina il piano di query e verifica il tipo di scansione.
Questo esercizio fa parte del corso
Migliorare le prestazioni delle query in PostgreSQL
Istruzioni dell'esercizio
- Crea un indice per la tabella
annual_aqiusando la colonnagood. - Includi solo i risultati con qualità dell’aria
goodper almeno il 90% dell’anno. - Concentrati sugli anni recenti limitando
aqi_yearal 2017 e 2018.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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 (___,___);