Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

qual è la differenza tra l'indice cluster e l'indice univoco?

I due non sono correlati:

  • "Unico" garantisce che ogni valore avvenga esattamente una sola volta
  • "In cluster" è il modo in cui i dati sono organizzati su disco

Puoi avere tutte e 4 le permutazioni:

  • "unico non raggruppato"
  • "cluster unico"
  • "non univoco non raggruppato"
  • "cluster non univoco"

Si verifica una certa confusione perché l'impostazione predefinita per una "chiave primaria" (PK) in SQL Server è in cluster.

Tuttavia, una "chiave primaria" deve essere sempre univoca. La differenza tra "unique" e "PK" è che unique consente un NULL, PK non consente alcun NULL.

Infine, alcuni limiti di numero

  • poiché cluster si riferisce al layout su disco, puoi avere un solo indice cluster per tabella
  • una tabella non può avere più di una chiave primaria ma può avere molti indici univoci