La création d'une contrainte unique sur une colonne Postgres supprime-t-elle la nécessité de l'indexer?

11

La création d'une contrainte unique sur une colonne Postgres supprime-t-elle la nécessité de l'indexer?

Je m'attends à ce qu'un index soit automatiquement nécessaire pour maintenir la contrainte efficacement.

vfclists
la source

Réponses:

13

Oui. Une UNIQUEcontrainte est implémentée à l'aide d'un index unique - un index b-tree avec un ordre de tri croissant par défaut sur toutes les colonnes impliquées. L'index est créé et maintenu automatiquement, et est utilisé à toutes fins comme un index unique simple par Postgres.

Il n'est pas nécessaire de créer un autre index unique (redondant) comme celui-ci, ce serait un gaspillage de ressources.

Explication détaillée:

De rares exceptions s'appliquent aux index multicolonnes avec des options de tri spéciales:

Erwin Brandstetter
la source