sql >> Database >  >> RDS >> Sqlserver

wat is een verschil tussen geclusterde index en unieke index?

De twee hebben niets met elkaar te maken:

  • "Uniek" zorgt ervoor dat elke waarde exact voorkomt eenmalig
  • "Geclusterd" is hoe de gegevens op schijf zijn gerangschikt

U kunt alle 4 de permutaties hebben:

  • "uniek niet-geclusterd"
  • "uniek geclusterd"
  • "niet-uniek niet-geclusterd"
  • "niet-uniek geclusterd"

Er ontstaat enige verwarring omdat de standaard voor een "primaire sleutel" (PK) in SQL Server geclusterd is.

Een "primaire sleutel" moet echter altijd uniek zijn. Het verschil tussen "uniek" en "PK" is dat uniek één NULL toestaat, PK staat geen NULL's toe.

Tot slot enkele aantal limieten

  • omdat geclusterd verwijst naar de lay-out op schijf, kunt u slechts één geclusterde index per tabel hebben
  • een tabel kan niet meer dan één pimary-sleutel hebben, maar kan veel unieke indexen hebben


  1. Android SQLite-fout:het variabelenummer moet tussen ?1 en ?999 . liggen

  2. Verwijder alle functies uit de Postgres-database

  3. Wat is sneller:MySQL/PHP of rechtstreeks vanuit statische bestanden?

  4. Oracle SQL:'geen overeenkomende unieke of primaire sleutel'-fout ontvangen en weet niet waarom