1
値がNULLのブール値に対してクエリを実行すると、予期しないシーケンススキャン
auto_review列のタイプがと呼ばれるデータベース列がありますboolean。ActiveRecord ORMを使用して作成された、そのフィールドのインデックスがあります。 CREATE INDEX index_table_on_auto_renew ON table USING btree (auto_renew); フィールドにブール値を照会すると、PGは期待どおりにインデックスを使用します。 EXPLAIN for: SELECT "table".* FROM "table" WHERE "table"."auto_renew" = 'f' QUERY PLAN ---------------------------------------------------------------------------------------------- Bitmap Heap Scan on table (cost=51.65..826.50 rows=28039 width=186) Filter: (NOT auto_renew) -> Bitmap Index Scan on index_domains_on_auto_renew (cost=0.00..44.64 rows=2185 width=0) Index Cond: (auto_renew = false) (4 …