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

PostgreSQL:Index für boolesche Spalte erstellen

PostgreSQL verwendet einen Index nur, wenn es glaubt, dass es auf diese Weise billiger ist. Ein Index auf einem boolean -Spalte, die nur zwei mögliche Werte annehmen kann, wird fast nie verwendet, da es billiger ist, die gesamte Tabelle sequentiell zu lesen, als zufällige E/A auf den Index und die Tabelle zu verwenden, wenn ein hoher Prozentsatz der Tabelle abgerufen werden muss .

Ein Index auf einem boolean Spalte ist nur nützlich

  1. in Data-Warehouse-Szenarien, wo es über einen Bitmap-Index-Scan mit anderen Indizes kombiniert werden kann .

  2. wenn nur ein kleiner Teil der Tabelle den Wert TRUE hat (oder FALSE übrigens). In diesem Fall erstellen Sie am besten einen Teilindex wie

    CREATE INDEX ON mytab((1)) WHERE boolcolumn;