Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Was ist der Unterschied zwischen Clustered Index und Unique Index?

Die beiden sind nicht verwandt:

  • "Eindeutig" stellt sicher, dass jeder Wert exakt vorkommt einmalig
  • "Clustered" bezeichnet die Anordnung der Daten auf der Festplatte

Sie können alle 4 Permutationen haben:

  • "eindeutig, nicht gruppiert"
  • "eindeutig geclustert"
  • "nicht eindeutig, nicht gruppiert"
  • "nicht eindeutig geclustert"

Es kommt zu einiger Verwirrung, weil der Standard für einen "Primärschlüssel" (PK) in SQL Server gruppiert ist.

Ein "Primärschlüssel" muss jedoch immer eindeutig sein. Der Unterschied zwischen „unique“ und „PK“ besteht darin, dass unique eine NULL zulässt, PK keine NULLen.

Abschließend einige Zahlenbeschränkungen

  • da sich gruppiert auf das On-Disk-Layout bezieht, können Sie nur einen gruppierten Index pro Tabelle haben
  • Eine Tabelle kann nicht mehr als einen Primärschlüssel haben, aber viele eindeutige Indizes