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

quelle est la différence entre l'index clusterisé et l'index unique ?

Les deux ne sont pas liés :

  • "Unique" garantit que chaque valeur apparaît exactement une seule fois
  • "Clustered" est la façon dont les données sont organisées sur le disque

Vous pouvez avoir les 4 permutations :

  • "unique non clusterisé"
  • "cluster unique"
  • "non unique non groupé"
  • "cluster non unique"

Une certaine confusion se produit car la valeur par défaut d'une "clé primaire" (PK) dans SQL Server est en cluster.

Une "clé primaire" doit cependant toujours être unique. La différence entre "unique" et "PK" est que unique autorise un NULL, PK n'autorise aucun NULL.

Enfin, quelques limites de nombre

  • comme clusterisé fait référence à la disposition sur disque, vous ne pouvez avoir qu'un seul index clusterisé par table
  • une table ne peut pas avoir plus d'une clé primaire mais peut avoir plusieurs index uniques