PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

PostgreSQL :créer un index pour une colonne booléenne

PostgreSQL n'utilisera un index que s'il pense que ce sera moins cher de cette façon. Un index sur un boolean colonne, qui ne peut prendre que deux valeurs possibles, ne sera presque jamais utilisée, car il est moins coûteux de lire séquentiellement toute la table que d'utiliser des E/S aléatoires sur l'index et la table si un pourcentage élevé de la table doit être récupéré .

Un index sur un boolean la colonne est seulement utile

  1. dans les scénarios d'entrepôt de données, où il peut être combiné avec d'autres index via un balayage d'index bitmap .

  2. si seulement une petite fraction de la table a la valeur TRUE (ou FALSE d'ailleurs). Dans ce cas, il est préférable de créer un index partiel j'aime

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