sql >> Database >  >> RDS >> Sqlserver

Moeten geclusterde indexen uniek zijn?

Ze hebben geen om uniek te zijn, maar het wordt zeker aangemoedigd.
Ik ben nog geen scenario tegengekomen waarin ik een CI wilde maken op een niet-unieke kolom.

Wat gebeurt er als je een CI maakt op een niet-unieke kolom

Laat dit leiden tot slechte prestaties?

Een uniqueur toevoegen voegt zeker wat overhead toe bij het berekenen en opslaan ervan.
Of deze overhead merkbaar zal zijn, hangt van verschillende factoren af.

  • Hoeveel gegevens de tabel bevat.
  • Wat is het aantal invoegingen.
  • Hoe vaak wordt de CI gebruikt in een select (als er geen dekkingsindexen zijn, vrijwel altijd).

Bewerken
Zoals Remus in opmerkingen heeft opgemerkt, bestaan ​​er gevallen waarin het maken van een niet-unieke CI een redelijke keuze zou zijn. Dat ik geen van die scenario's ben tegengekomen, toont alleen maar mijn eigen gebrek aan blootstelling of competentie aan (kies je keuze).



  1. SELECT query retourneer 1 rij van elke groep

  2. Toegang tot een mysql-database vanaf externe host/ip? (dwz:mysql-werkbank)

  3. ERROR 1064 (42000):U heeft een fout in uw SQL-syntaxis; controleer de handleiding die overeenkomt met uw MySQL-serverversie voor de juiste syntaxis om te gebruiken

  4. Query herschrijven mislukt als MV ASNI Join gebruikt