インデックススキャン
あなたの友人はハワイに住んでおり、火山性スモッグで喘息が悪化しています。あなたは米国環境保護庁(EPA)の郡レベルの大気質データを使って、新たな居住地を調べる手伝いをしています。新しい住まいは、少なくとも全日数の90%で大気質が良好であることを条件にすることにしました。
米国内には郡が非常に多く、大気質のテーブルは「大きい」ことが分かっています。最初のクエリ(非掲載)はシーケンシャルスキャンとなり、実行に長時間かかりました。
良好な大気質の日数を記録している列にインデックスを追加することにしました。クエリプランを確認して、どの種類のスキャンかを見てみましょう。
この演習はコースの一部です
PostgreSQLでクエリ性能を改善する
演習の手順
annual_aqiテーブルのgood列に対してインデックスを作成してください。- 1年の少なくとも90%が
goodの大気質である結果のみに絞り込みます。 aqi_yearを 2017 年と 2018 年に限定して、直近の年にフォーカスします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
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 (___,___);