sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Index - Skillnaden mellan char och int

Heltals-/identitetskolumner används ofta för primärnycklar i databastabeller av ett antal anledningar. Primära nyckelkolumner måste vara unika, bör inte vara uppdateringsbara och borde verkligen vara meningslösa. Detta gör en identitetskolumn till ett ganska bra val eftersom servern kommer att få nästa värde för dig, de måste vara unika och heltal är relativt små och användbara (jämfört med en GUID).

Vissa databasarkitekter kommer att hävda att andra datatyper bör användas för primära nyckelvärden och kriterierna "meningslösa" och "ej uppdateringsbara" kan argumenteras övertygande på båda sidor. Oavsett vilket är heltals-/identitetsfält ganska bekväma och många databasdesigners tycker att de gör lämpliga nyckelvärden för referensintegritet.

  1. Det bästa valet för primärnyckel är heltalsdatatyper eftersom heltalsvärden bearbetas snabbare än teckendatatypvärden. En teckendatatyp (som en primärnyckel) måste konverteras till ASCII-ekvivalenta värden innan bearbetning.
  2. Hämtning av posten på basis av primärnyckel kommer att gå snabbare om heltal är primärnycklar eftersom detta kommer att innebära att fler indexposter kommer att finnas på en enda sida. Så den totala söktiden minskar. Sammanfogningarna blir också snabbare. Men detta kommer att vara tillämpligt om din fråga använder klustrad indexsökning och inte skanning och om bara en tabell används. Om en skanning inte har ytterligare kolumn kommer det att innebära fler rader på en datasida.

Förhoppningsvis kommer detta att hjälpa dig!



  1. SQL Infoga rad och kopiera infogat Auto-Inkrement-ID till en annan kolumn

  2. Hur får man kolumnnamnen tillsammans med resultaten i php/mysql?

  3. Skriv ut namn på alla aktiviteter med varken maximalt eller minsta antal deltagare

  4. django - aggregera json-fältspecifika nycklar och ordning efter aggregeringen