See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 3812|Vastuse: 2

[Allikas] [Turn] (MSSQL) SQL Serveri andmebaasi int ja guid primaarvõtmete võrdluseks

[Kopeeri link]
Postitatud 06.06.2023 22:17:40 | | |
Nõuded: Hiljutisel intervjuul küsiti minult, mis on SQL Serveri andmebaasi int ja guid kui peamise võtme vahel.Mõlemal on omad plussid ja miinused, palun kaaluge neid vastavalt oma tegelikele äristsenaariumitele

Originaaltekst 1Hüperlingi sisselogimine on nähtav.

INT-i kasutamise eelised põhivõtmena:

1. See nõuab väikest andmesalvestusruumi, ainult 4 baiti.

2. INT kasutamise jõudlus sisestus- ja uuendusoperatsioonide jaoks on parem kui GUID-il, seega int kasutamine parandab rakenduse jõudlust.

3. Indekseerimise ja liitmise operatsioonid, intellekt on parima jõudlusega.

4. Lihtne meelde jätta.

5. Toetus viimase väärtuse saamiseks funktsiooni kaudu, näiteks: Scope_Indentity().

INT-i kasutamise puudused põhivõtmena

1. Kui tabeleid ühendatakse sageli, võib primaarvõtmete dubleerimine tekkida.

2. INT-andmete kasutamise ulatusele on piirangud. Kui andmemaht on suur, võib see ületada INT väärtuse vahemikku.

3. On keeruline töödelda hajutatud salvestatud andmetabeleid.

GUID-i kasutamise eelised peamise võtmena:

1. See on ainulaadne.

2. Dubleerimise võimalusi on vähe.

3. See sobib suure hulga andmete sisestamiseks ja uuendamiseks.

4. Serveritevaheline andmete ühendamine on väga mugav.

GUID-i kasutamise puudused peamise võtmena:

1. Salvestusruum on suur (16 baiti), seega võtab see rohkem ketta suurust.

2. On raske meeles pidada. Liitmisoperatsiooni jõudlus on madalam kui int.

3. Puudub sisseehitatud funktsioon viimaste genereeritud GUID-põhivõtmete saamiseks.

4. GUID kui peamine võti lisatakse teistele tabeli indeksitele, mis vähendab jõudlust.

Kokkuvõte:

Ülaltoodud loetletakse GUID ja INT andmetüüpide eelised ja puudused primaarvõtmetena. Arvan, et suurte andmemahtude puhul soovitatakse kasutada GUID-i peamise võtmena. kuiInt kasutamine annab sulle parima tulemuse


Kommentaar: KasutaTellitud GUID jõudlus paraneb oluliselt

Originaaltekst kaksHüperlingi sisselogimine on nähtav.

Identiteet on täistüüpi tüüp, kümnendsüsteem ilma kümnendkomadefinitsioonita, bigint on aktsepteeritav

Guid on fikseeritud binaar(16), mis on 16 baiti

identiteet suureneb (või lahutatakse) ning guid on juhuslik, nii et andmete lisamiselEsimene ei tekita fragmente, teine aga ning kuna viimane on vales järjekorras, tuleb järjekorda lisamisel kohandada, seega on esimene üldiselt jõudluse poolest parem kui teine.

Suur hulk infot jagatakse tavaliselt tabeliteks, seega on identiteet paljudel juhtudel siiski sobivam

Mis puudutab esmase võtme tähendust, siis see sõltub sellest, kuidas sa seda disainimisel arvestad; andmetöötluse puhul ei pea primaarvõti olema tähenduslik, ja kui peavõti peab sisaldama ärilist tähendust, siis identiteedi põhivõti on muidugi mõttetu, kuid üldiselt on parem eraldada äriline tähendus ja andmetöötlus, äri muutub pidevalt, kui tahad tuua tähenduse tabeli põhivõtmele, siis äri muutub ja pead tabeli struktuuri rohkem kohandama.

Originaaltekst kolmHüperlingi sisselogimine on nähtav.

1. Süsteemides, kus sageli on vaja andmete migreerimist, soovitatakse kasutada Guid-i. Ja mitteklasterdatud indeksite lisamine vastavatele võõrvõtmeväljadele, st liitumispäringute jaoks kasutatavatele väljadele, on jõudluse parandamiseks suur kasu. Tingimuse välja saab lisada ka vastavalt mitteklasterdatud indeksitele.

2. Kui kasutada Guid-tüüpi põhivõtmena, peaks andmetüüp olema unikaalne identifikator ja kindlasti meeles pidada sedaTühista esmased võtmed "Agregaatindeksid

3. Süsteemide puhul, mida pole vaja migreerida või väikestes süsteemides, on endiselt väga mugav kasutada int-d esmase võtmena ning efektiivsuses on siiski teatav paranemine.

(Lõpp)




Eelmine:ASP.NET Core (20) Takista avatud ümbersuunamisrünnakuid
Järgmine:.NET Core programmi mitmekeelsed lugemis- ja kirjutamisressursside (.resx) failid
 Üürileandja| Postitatud 06.06.2023 22:42:46 |
SequentialGuidValueGenerator genereerib järjestikuseid Guid-väärtusi, mis on optimeeritud kasutamiseks Microsoft SQL Serveri klastrivõtmete või indeksitega, mis annab parema jõudluse kui juhuslikud väärtused. See on vaikimisi generaator, mis genereerib SQL Server Guid veerud nende lisamisel.

Hüperlingi sisselogimine on nähtav.


Entity Framework Core'i järjestikused GUID-d ei pruugi olla järjestikused

Hüperlingi sisselogimine on nähtav.
 Üürileandja| Postitatud 27.01.2024 11:07:29 |
[MSSQL] SQL SERVER tellis GUID-e ja järjekorras mitte-GUID-e kui peamisi võtmeagregregatsiooni indeksi testisid
https://www.itsvse.com/thread-10607-1-1.html
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com