Zahteve: Med nedavnim razgovorom so me vprašali, kakšna je razlika med SQL Server database int in guid kot glavnim ključem.Oba imata svoje prednosti in slabosti, prosim, upoštevajte jih glede na vaše dejanske poslovne situacije。
Izvirno besedilo 1:Prijava do hiperpovezave je vidna.
Prednosti uporabe INT kot primarnega ključa:
1. Zahteva majhen prostor za shranjevanje podatkov, le 4 bajte.
2. Zmogljivost uporabe INT za vstavljanje in posodabljanje je boljša kot pri GUID, zato uporaba int izboljša zmogljivost aplikacije.
3. Operacije indeksiranja in združitve, int ima najboljšo zmogljivost.
4. Enostavno si zapomniti.
5. Podpora za pridobitev najnovejše vrednosti preko funkcije, kot je: Scope_Indentity().
Slabosti uporabe INT kot primarnega ključa
1. Če je pogosto združevanje tabel, lahko pride do podvajanja primarnih ključev.
2. Obstajajo omejitve glede obsega uporabe podatkov INT. Če je podatkov velika, lahko preseže vrednost INT.
3. Težko je obdelovati porazdeljene shranjene podatkovne tabele.
Prednosti uporabe GUID kot primarnega ključa:
1. Je edinstven.
2. Možnosti za podvajanje je malo.
3. Primeren je za vstavljanje in posodabljanje velikih količin podatkov.
4. Združevanje podatkov med strežniki je zelo priročno.
Slabosti uporabe GUID kot primarnega ključa:
1. Prostor za shranjevanje je velik (16 bajtov), zato zavzame več diska.
2. Težko si jo je zapomniti. Uspešnost operacije spajanja je nižja kot pri int.
3. Ni vgrajene funkcije za pridobitev najnovejšega generiranega GUID primarnega ključa.
4. GUID kot primarni ključ bo dodan drugim indeksom v tabeli, kar bo zmanjšalo zmogljivost.
Povzetek:
Zgoraj navedeno navaja prednosti in slabosti podatkovnih tipov GUID in INT kot primarnih ključev. Mislim, da je za velike količine podatkov priporočljivo uporabljati guid kot primarni ključ. KerUporaba int ti bo dala najboljšo zmogljivost。
Komentar: UporabaDelovanje urejenega GUID-a se močno izboljša。
Izvirno besedilo dva:Prijava do hiperpovezave je vidna.
Identiteta je cel tip, decimalno brez decimalne definicije, bigint je sprejemljiv
Vodilo je fiksno binarno(16), ki obsega 16 bajtov
Identiteta se poveča (ali odšteje), GUID pa je naključen, tako da se podatki vstavljajo,Prvi ne bo ustvaril nobenih fragmentov, medtem ko bo drugi, in ker je drugi v napačnem vrstnem redu, je treba vrstni red prilagoditi ob vstavljanju, zato je prvi na splošno boljši od drugega glede zmogljivosti.
Velika količina informacij je običajno razdeljena v tabele, zato je identiteta v mnogih primerih še vedno bolj primerna
Kar zadeva pomen primarnega ključa, je to odvisno od tega, kako ga razumete pri oblikovanju; za samo obdelavo podatkov primarni ključ ni nujno smiseln, in če zahtevate, da primarni ključ vsebuje poslovni pomen, potem je primarni ključ identitete seveda brez pomena, vendar je na splošno bolje ločiti poslovni pomen od obdelave podatkov, saj se poslovanje nenehno spreminja; če želite pomen prenesti na glavni ključ oblikovanja tabele, se poslovno spreminja, boste morali strukturo tabele še bolj prilagoditi.
Izvirno besedilo tri:Prijava do hiperpovezave je vidna.
1. V sistemih, ki pogosto potrebujejo migracijo podatkov, je priporočljivo uporabiti Guid. Dodajanje negručenih indeksov ustreznim poljem tujih ključev, torej poljem, ki se uporabljajo za poizvedbe po združitvi, je zelo koristno za izboljšanje zmogljivosti. Polje pogoja kjer se lahko doda tudi po potrebi za negručene indekse.
2. Ko uporabljate tip Guid kot primarni ključ, naj bo podatkovni tip edinstven identifikator in si ga zapomnitePrekliči primarni ključ "Agregatni indeksi”
3. Za sisteme, ki jih ni treba migrirati, ali za majhne sisteme je še vedno zelo priročno uporabljati int kot primarni ključ, poleg tega pa je še vedno opaziti določeno izboljšanje učinkovitosti.
(Konec)
|