複合インデックスの使い方
いくつかの列で 1 つのインデックス
書き方
CREATE INDEX 名前 ON 表 (列1, 列2); CREATE INDEX CONCURRENTLY 名前 ON 表 (列1, 列2, 列3);
インデックスは列の順に並べた目次です。(a, b) は a の順に並び、a が同じ中で b の順です。だから a の条件が無いと使いにくく、a の範囲で探すと b の条件は飛ばし読みになります。等号(=)で探す列を先に、範囲(>=・BETWEEN)や ORDER BY の列を後に置くと、読む行が少なくなり、並べ替え(Sort)も要らなくなります。
例
CREATE INDEX visits_doctor_visited_idx ON visits (doctor_id, visited_at);
実際に打って練習する
障害対応(PostgreSQL)コースの Lv37「並べる順番 複合インデックス」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
すべてのレベルが、プラチナ以上のプランで遊べます。