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

SQL Index - Forskel mellem char og int

Heltals-/identitetskolonner bruges ofte til primærnøgler i databasetabeller af en række årsager. Primære nøglekolonner skal være unikke, bør ikke kunne opdateres og bør virkelig være meningsløse. Dette gør en identitetskolonne til et ret godt valg, fordi serveren får den næste værdi for dig, de skal være unikke, og heltal er relativt små og brugbare (sammenlignet med en GUID).

Nogle databasearkitekter vil hævde, at andre datatyper bør bruges til primære nøgleværdier, og kriterierne "meningsløse" og "ikke opdateres" kan argumenteres overbevisende på begge sider. Uanset hvad er heltals-/identitetsfelter ret praktiske, og mange databasedesignere finder ud af, at de laver passende nøgleværdier for referenceintegritet.

  1. Det bedste valg for primærnøgle er heltalsdatatyper, da heltalsværdier behandles hurtigere end karakterdatatypeværdier. En karakterdatatype (som en primær nøgle) skal konverteres til ASCII-ækvivalente værdier før behandling.
  2. Hentning af posten på basis af primærnøgle vil være hurtigere i tilfælde af heltal som primærnøgler, da dette vil betyde, at flere indeksposter vil være til stede på en enkelt side. Så den samlede søgetid falder. Sammenføjningerne vil også være hurtigere. Men dette vil være gældende, hvis din forespørgsel bruger clustered index search og ikke scanning, og hvis kun én tabel bruges. I tilfælde af scanning vil ikke have yderligere kolonne betyde flere rækker på én dataside.

Forhåbentlig vil dette hjælpe dig!



  1. Hvornår kan jeg hoste IIS og SQL Server på den samme maskine?

  2. SQL Server SELECT, hvor enhver kolonne indeholder 'x'

  3. SQL 2005 Kan jeg bruge nøgleord som i en case-sætning

  4. installere Oracle Instantclient på Mac OS/X uden at indstille miljøvariabler?