Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 3812|Atsakyti: 2

[Šaltinis] [Turn] (MSSQL) SQL Server duomenų bazės int ir guid pirminio rakto palyginimui

[Kopijuoti nuorodą]
Paskelbta 2023-06-06 22:17:40 | | |
Reikalavimai: Neseniai vykusio interviu metu manęs paklausė, kuo skiriasi SQL serverio duomenų bazė int ir guid kaip pagrindinis raktas.Abu turi privalumų ir trūkumų, pasverkite juos pagal savo faktinius verslo scenarijus

Originalus tekstas 1Hipersaito prisijungimas matomas.

INT kaip pirminio rakto naudojimo privalumai:

1. Tam reikia nedidelės duomenų saugyklos vietos, tik 4 baitai.

2. INT naudojimo įterpimo ir naujinimo operacijoms našumas yra geresnis nei GUID, todėl naudojant int pagerės programos našumas.

3. Indeksuoti ir sujungti operacijas, int turi geriausią našumą.

4. Lengva įsiminti.

5. Palaikymas, norint gauti naujausią reikšmę naudojant funkciją, pvz.: Scope_Indentity().

INT kaip pirminio rakto naudojimo trūkumai

1. Jei dažnai sujungiamos lentelės, gali būti dubliuojami pirminiai raktai.

2. INT duomenų naudojimo apimtis yra ribojama. Jei yra didelis duomenų kiekis, jis gali viršyti INT reikšmių diapazoną.

3. Sunku apdoroti paskirstytas saugomų duomenų lenteles.

GUID kaip pirminio rakto naudojimo privalumai:

1. Tai unikalu.

2. Yra mažai galimybių dubliuotis.

3. Jis tinka įterpti ir atnaujinti operacijas dideliame duomenų kiekyje.

4. Kelių serverių duomenų sujungimas yra labai patogus.

GUID kaip pirminio rakto naudojimo trūkumai:

1. Saugyklos vieta yra didelė (16 baitų), todėl ji užims daugiau disko dydžio.

2. Sunku prisiminti. Sujungimo operacijos našumas yra mažesnis nei int.

3. Nėra įtaisytosios funkcijos, leidžiančios gauti naujausią sugeneruotą GUID pirminį raktą.

4. GUID kaip pirminis raktas bus įtrauktas į kitus lentelės indeksus, todėl sumažės našumas.

Suvestinė:

Aukščiau išvardyti GUID ir INT duomenų tipų, kaip pirminių raktų, privalumai ir trūkumai. Manau, kad dideliems duomenų kiekiams rekomenduojama naudoti guid kaip pirminį raktą. KadangiNaudojant int duos jums geriausią našumą


Komentaras: NaudojimasUžsakytas GUID našumas labai pagerėja

Originalus tekstas duHipersaito prisijungimas matomas.

tapatybė yra viso tipo tipas, dešimtainis be dešimtainio apibrėžimo, bigint yra priimtinas

GUID yra fiksuotas dvejetainis [16], kuris yra 16 baitų

tapatybė didinama (arba atimama), o GUID yra atsitiktinis, taigi įterpiant duomenis,Pirmasis nesukurs jokių fragmentų, o antrasis – dėl to, kad antrasis yra netinkamas, įterpus tvarką reikia pakoreguoti, todėl pirmasis paprastai yra geresnis už antrąjį našumo požiūriu.

Didelis informacijos kiekis paprastai yra suskirstytas į lenteles, todėl tapatybė daugeliu atvejų vis tiek yra tinkamesnė

Kalbant apie pirminio rakto reikšmę, tai priklauso nuo to, kaip jį vertinate kurdami, pačiam duomenų apdorojimui pirminis raktas nebūtinai turi būti prasmingas, o jei jums reikia, kad pirminis raktas apimtų verslo prasmę, tada tapatybės pirminis raktas, žinoma, yra beprasmis, tačiau apskritai geriau atskirti verslo prasmę ir duomenų apdorojimą, verslas nuolat keičiasi, jei norite suteikti prasmę pagrindiniam lentelės dizaino raktui, tada verslas keičiasi, turėsite labiau pakoreguoti lentelės struktūrą.

Originalus tekstas trysHipersaito prisijungimas matomas.

1. Sistemose, kuriose dažnai reikia perkelti duomenis, rekomenduojama naudoti Guid. O nesugrupuotų indeksų pridėjimas prie atitinkamų išorinio rakto laukų, tai yra laukų, naudojamų sujungimo užklausoms, yra labai naudingas siekiant pagerinti našumą. Sąlygos where lauką taip pat galima įtraukti pagal poreikį nesugrupuotiems indeksams.

2. Naudojant Guid tipą kaip pirminį raktą, duomenų tipas turi būti uniqueidentifier ir būtinai jį atsimintiAtšaukti pirminio rakto "Suvestiniai indeksai

3. Sistemoms, kurių nereikia perkelti, arba mažoms sistemoms vis tiek labai patogu naudoti int kaip pirminį raktą, ir vis dar yra tam tikras efektyvumo pagerėjimas.

(Pabaiga)




Ankstesnis:ASP.NET Core (20) Užkirsti kelią atvirų peradresavimo atakų
Kitą:.NET Core programos daugiakalbiai skaitymo ir rašymo išteklių (.resx) failai
 Savininkas| Paskelbta 2023-06-06 22:42:46 |
SequentialGuidValueGenerator generuoja nuoseklias GUID reikšmes, optimizuotas naudoti su Microsoft SQL serverio klasterio raktais arba indeksais, todėl našumas yra geresnis nei atsitiktinių reikšmių. Tai numatytasis generatoriaus rinkinys, skirtas generuoti SQL serverio GUID stulpelius, kai jie įtraukiami.

Hipersaito prisijungimas matomas.


Nuoseklūs GUID objektų sistemos branduolyje gali būti nenuoseklūs

Hipersaito prisijungimas matomas.
 Savininkas| Paskelbta 2024-01-27 11:07:29 |
[MSSQL] SQL SERVER užsakyti GUID ir neužsakyti GUID kaip pirminio rakto agregavimo indekso testai
https://www.itsvse.com/thread-10607-1-1.html
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com