PostgreSQLは、その方が安価であると判断した場合にのみインデックスを使用します。boolean
のインデックス テーブルの高い割合を取得する必要がある場合は、インデックスとテーブルでランダムI / Oを使用するよりもテーブル全体を順番に読み取る方が安価であるため、2つの可能な値しかとることができないcolumnはほとんど使用されません。 。
boolean
のインデックス 列は有用です
-
データウェアハウスのシナリオでは、ビットマップインデックススキャンを介して他のインデックスと組み合わせることができます。 。
-
テーブルのごく一部のみが値
TRUE
を持っている場合 (またはFALSE
そのことについては)。この場合、部分インデックスを作成するのが最善です。 のようにCREATE INDEX ON mytab((1)) WHERE boolcolumn;