コマンドを忘れるので備忘録として残します
Indexの確認
登録されているindexの一覧
SELECT schemaname, tablename, indexname, indexdef
FROM pg_indexes
WHERE schemaname = 'xxxx_schema';
結果
schemaname | tablename | indexname | indexdef |
xxx_schema | xxx_table | xxx_table_idx | CREATE INDEX xxx_table_idx ON xxx_schema.xxx_table USING btree (test_column1) |
xxx_schema | yyy_table | yyy_table_idx | CREATE INDEX yyy_table_idx ON xxx_schema.yyy_table USING btree (test_column1) |
index scanの確認
登録されているindexごとのscan情報一覧
select * from pg_stat_user_indexes;
結果
relid | indexrelid | schemaname | relname | indexrelname | idx_scan | idx_tup_read | idx_tup_fetch |
17028 | 17043 | xxx_schema | xxx_table | xxx_table_idx | 96 | 3116660 | 833032 |
17033 | 17044 | xxx_schema | yyy_table | yyy_table_idx | 82 | 14764846 | 47 |
idx_scan: インデックススキャン実施回数
idx_tup_read: インデックススキャンによって読み取られたインデックスエントリの数
idx_tup_fetch: IndexScanによって読み取られたエントリの数 (BitmapScan によるものを除く)
まとめ
indexを貼ってもindex scanしてくれない事象に遭遇して、これらの調査をしました
explain(実行計画)の読み解き方も学びたいな…