sql >> Databasteknik >  >> RDS >> Sqlserver

Måste klustrade index vara unika?

De har inte att vara unik men det uppmuntras verkligen.
Jag har inte stött på ett scenario ännu där jag ville skapa en CI på en icke-unik kolumn.

Vad händer om du skapar en CI på en icke-unik kolumn

Leder detta till dåliga resultat?

Lägga till en uniqueifier lägger säkert till en del omkostnader vid beräkning och lagring av det.
Om denna omkostnad kommer att märkas beror på flera faktorer.

  • Hur mycket data tabellen innehåller.
  • Vad är insättningshastigheten.
  • Hur ofta används CI i ett urval (när det inte finns några täckande index, i stort sett alltid).

Redigera
som påpekats av Remus i kommentarerna, finns det användningsfall där att skapa en icke-unik CI skulle vara ett rimligt val. Att jag inte har stött på ett av dessa scenarier visar bara min egen brist på exponering eller kompetens (välj ditt val).



  1. Ändra en MySQL-kolumn till AUTO_INCREMENT

  2. cakephp vänskap mellan användare Länka ihop modeller

  3. Primärt nyckelvärde ökar inte korrekt

  4. MemoryError när du använder metoden read() vid läsning av en stor JSON-fil från Amazon S3