pg_stat_user_indexes の使い方
使われていないインデックスを探す
書き方
SELECT indexrelname, idx_scan FROM pg_stat_user_indexes ORDER BY idx_scan; DROP INDEX CONCURRENTLY インデックス;
idx_scan はそのインデックスを使った回数です。長い間 0 のインデックスは、書き込みを遅くし、ディスクを使うだけです。ただし主キーや UNIQUE のインデックスは、重複を防ぐ役目があるので消しません。統計を消した(pg_stat_reset)直後や、月に一度の処理だけが使うものにも気をつけます。
例
SELECT s.indexrelname FROM pg_stat_user_indexes s JOIN pg_index i ON i.indexrelid = s.indexrelid WHERE s.idx_scan = 0 AND NOT i.indisunique;
実際に打って練習する
PostgreSQL DBA コースの Lv49「使われないインデックス」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
すべてのレベルが、プラチナ以上のプランで遊べます。