いいえ、ブールフィールドでフィルタリングする場合は、ブールフィールドにインデックスを付けることができます。これは完全に合理的なことですが、すべてのインデックスと同様に、PostgreSQLは、テーブルを十分に除外しない場合は無視することを選択する可能性があります-インデックススキャンと大量の行フェッチは、シーケンシャルスキャンよりもコストがかかる可能性があります- -その列の値に応じて、影響する場合と影響しない場合があります。
また、PostgreSQLではインデックスに条件を設定できることにも注意してください。これはブールフィールドで役立つことがよくあります。 (部分インデックス
を参照してください。 詳細については。)そのスコープ内で一般的にフィルタリングまたは並べ替えを行う場合は、CREATE INDEX ... ON table (some_field) WHERE boolean_field
のようなものが最適です。 。