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

Forholdet mellem primærnøgle og grupperet indeks

En primær nøgle er en logisk koncept - det er den unikke identifikator for en række i en tabel. Som sådan har den en masse attributter - den er muligvis ikke null, og den skal være unik. Selvfølgelig, da du sandsynligvis vil søge efter poster ved deres unikke identifikator, ville det være godt at have et indeks på den primære nøgle.

Et klynget indeks er et fysisk koncept - det er et indeks, der påvirker rækkefølgen, hvori poster gemmes på disken. Dette gør det til et meget hurtigt indeks, når du får adgang til data, selvom det kan sænke skrivningen, hvis din primærnøgle ikke er et sekventielt nummer.

Ja, du kan have en primær nøgle uden et klynget indeks - og nogle gange vil du måske det (for eksempel når din primærnøgle er en kombination af fremmednøgler på en sammenføjningstabel, og du ikke ønsker at pådrage dig diskblandet overhead når du skriver).

Ja, du kan oprette et klynget indeks på kolonner, der ikke er en primær nøgle.



  1. Koalescer ækvivalent for n. ikke null værdi - MySQL

  2. MySQL Galera-noden starter ikke (afbryder med fejlen 'WSREP:[...]:60:kunne ikke nå primær visning:60 (drift timeout)')

  3. SQL-syntaks for hvis eksisterer

  4. Når der ikke er angivet nogen 'Bestil efter', hvilken rækkefølge vælger en forespørgsel for dit rekordsæt?