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

Skal klyngede indekser være unikke?

De har ikke at være unik, men det opmuntres bestemt.
Jeg er endnu ikke stødt på et scenarie, hvor jeg ønskede at oprette en CI på en ikke-unik kolonne.

Hvad sker der, hvis du opretter et CI på en ikke-unik kolonne

Fører dette til dårlig ydeevne?

Tilføjelse af en uniqueifier tilføjer helt sikkert nogle overhead ved beregning og lagring af det.
Hvis denne overhead vil være mærkbar, afhænger af flere faktorer.

  • Hvor mange data indeholder tabellen.
  • Hvad er indsættelseshastigheden.
  • Hvor ofte bruges CI'en i et udvalg (når der ikke findes nogen dækkende indekser, stort set altid).

Rediger
som det er blevet påpeget af Remus i kommentarerne, eksisterer der brugstilfælde, hvor oprettelse af en ikke-unik CI ville være et rimeligt valg. At jeg ikke er stødt på et af disse scenarier, viser blot min egen mangel på eksponering eller kompetence (vælg dit valg).



  1. Fastgør tabel i Flash-cachen

  2. Sådan rettes 508-ressourcegrænsen er nået i PHP MySQL

  3. At holde en bruger logget ind med nodeJS

  4. Hvordan CONCAT_WS() virker i MariaDB