450万行のテーブルがあります。主キーはありません。テーブルには、p_id
整数型の列があります。idx_mytable_p_id
この列には、btree
メソッドを使用したインデックスがあります。そうです:
SELECT * FROM mytable WHERE p_id = 123456;
これについてExplainを実行すると、次の出力が表示されます。
Bitmap Heap Scan on mytable (cost=12.04..1632.35 rows=425 width=321)
Recheck Cond: (p_id = 543094)
-> Bitmap Index Scan on idx_mytable_p_id (cost=0.00..11.93 rows=425 width=0)
Index Cond: (p_id = 543094)
質問:
- そのクエリがヒープスキャンを実行してからビットマップインデックススキャンを実行するのはなぜですか?
- なぜ425行を調べているのですか?操作321の幅はなぜですか?
- 12.04..1632.35と0.00..11.93の費用はいくらですか?
レコードの場合、値が123456の773行がp_id
あります。に38列ありますmytable
。
ありがとう!