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
-
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 .
-
si seulement une petite fraction de la table a la valeur
TRUE
(ouFALSE
d'ailleurs). Dans ce cas, il est préférable de créer un index partiel j'aimeCREATE INDEX ON mytab((1)) WHERE boolcolumn;