PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Hinzufügen eines Index zu einem booleschen Feld

Nein, Sie können ein boolesches Feld indizieren, wenn Sie danach filtern. Das ist durchaus vernünftig, obwohl PostgreSQL wie bei allen Indizes entscheiden kann, es zu ignorieren, wenn es nicht genug von der Tabelle ausschließt -- ein Index-Scan plus eine Tonne Zeilenabrufe kann teurer sein als ein sequenzieller Scan - - was Sie abhängig von den Werten in dieser Spalte beeinflussen kann oder nicht.

Sie sollten sich auch darüber im Klaren sein, dass Sie mit PostgreSQL Bedingungen auf Indizes setzen können, was ich bei booleschen Feldern oft nützlich finde. (Siehe Teilindizes für Details.) Wenn Sie häufig innerhalb dieses Bereichs filtern oder sortieren, könnten Sie am besten mit etwas wie CREATE INDEX ... ON table (some_field) WHERE boolean_field bedient werden .