Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 3812|Atbildi: 2

[Avots] [Turn] (MSSQL) SQL Server datu bāzes int un guid primārās atslēgas salīdzināšanai

[Kopēt saiti]
Publicēts 06.06.2023 22:17:40 | | |
Prasības: Nesenās intervijas laikā man jautāja, kāda ir atšķirība starp SQL Server datu bāzes int un guid kā galveno atslēgu.Abiem ir plusi un mīnusi, lūdzu, nosveriet tos atbilstoši jūsu faktiskajiem biznesa scenārijiem

Oriģinālais teksts 1Hipersaites pieteikšanās ir redzama.

INT kā primārās atslēgas izmantošanas priekšrocības:

1. Tas prasa nelielu datu glabāšanas vietu, tikai 4 baitus.

2. INT izmantošanas veiktspēja ievietošanas un atjaunināšanas operācijām ir labāka nekā GUID, tāpēc int izmantošana uzlabos lietojumprogrammas veiktspēju.

3. Indeksa un pievienošanās operācijas, int ir vislabākais sniegums.

4. Viegli atcerēties.

5. Atbalsts, lai iegūtu jaunāko vērtību, izmantojot funkciju, piemēram: Scope_Indentity().

Trūkumi, izmantojot INT kā primāro atslēgu

1. Ja bieži tiek apvienotas tabulas, var būt primāro atslēgu dublēšanās.

2. Pastāv ierobežojumi attiecībā uz INT datu izmantošanas apjomu. Ja ir liels datu apjoms, tas var pārsniegt INT vērtību diapazonu.

3. Ir grūti apstrādāt izplatītās saglabāto datu tabulas.

GUID kā primārās atslēgas izmantošanas priekšrocības:

1. Tas ir unikāls.

2. Dublēšanai ir maz iespēju.

3. Tas ir piemērots ievietošanas un atjaunināšanas operācijām lielā datu apjomā.

4. Starpserveru datu apvienošana ir ļoti ērta.

GUID kā primārās atslēgas izmantošanas trūkumi:

1. Krātuves vieta ir liela (16 baiti), tāpēc tā aizņems lielāku diska izmēru.

2. To ir grūti atcerēties. Savienojuma operācijas veiktspēja ir zemāka nekā int.

3. Nav iebūvētas funkcijas, lai iegūtu jaunāko ģenerēto GUID primāro atslēgu.

4. GUID kā primārā atslēga tiks pievienota citiem tabulas indeksiem, tādējādi tas samazinās veiktspēju.

Kopsavilkuma:

Iepriekš ir uzskaitītas GUID un INT datu tipu kā primāro atslēgu priekšrocības un trūkumi. Es domāju, ka lieliem datu apjomiem ieteicams izmantot guid kā primāro atslēgu. BetIzmantojot int, jūs saņemsiet vislabāko veiktspēju


Komentārs: IzmantojietPasūtītā GUID veiktspēja ievērojami uzlabojas

Oriģinālais teksts diviHipersaites pieteikšanās ir redzama.

identitāte ir vesels tipa tips, decimāldaļa bez decimāldaļas definīcijas, bigint ir pieņemams

GUID ir fiksēts binārs(16), kas ir 16 baiti

identitāte tiek palielināta (vai atņemta), un GUID ir nejauša, tātad, kad tiek ievietoti dati,Pirmais neradīs nekādus fragmentus, bet otrais - un, tā kā otrais nav kārtībā, secība ir jāpielāgo, kad tas ir ievietots, tāpēc pirmais parasti ir labāks par otro veiktspējas ziņā.

Liels informācijas apjoms parasti ir sadalīts tabulās, tāpēc identitāte daudzos gadījumos joprojām ir piemērotāka

Kas attiecas uz primārās atslēgas nozīmi, tas ir atkarīgs no tā, kā jūs to uzskatāt, projektējot, pašai datu apstrādei primārajai atslēgai nav jābūt jēgpilnai, un, ja jums ir nepieciešams, lai primārā atslēga saturētu biznesa nozīmi, tad identitātes primārā atslēga, protams, ir bezjēdzīga, bet vispārīgi runājot, labāk ir atdalīt biznesa nozīmi un datu apstrādi, bizness vienmēr mainās, ja vēlaties piešķirt nozīmi tabulas dizaina galvenajai atslēgai, tad bizness mainās, jums būs vairāk jāpielāgo tabulas struktūra.

Oriģinālais teksts trīsHipersaites pieteikšanās ir redzama.

1. Sistēmās, kurās bieži ir jāveic datu migrācija, ieteicams izmantot Guid. Un nesagrupētu indeksu pievienošana atbilstošajiem ārējās atslēgas laukiem, tas ir, laukiem, kas tiek izmantoti savienojuma vaicājumiem, ir ļoti noderīga, lai uzlabotu veiktspēju. Nosacījuma where lauku var pievienot arī negrupētiem indeksiem.

2. Izmantojot Guid tipu kā primāro atslēgu, datu tipam jābūt uniqueidentifier un noteikti atcerieties toAtcelt primārās atslēgas "Apkopotie indeksi

3. Sistēmām, kuras nav jāmigrē, vai mazām sistēmām joprojām ir ļoti ērti izmantot int kā primāro atslēgu, un joprojām ir zināms efektivitātes uzlabojums.

(Beigas)




Iepriekšējo:ASP.NET Core (20) Novērst atvērtus novirzīšanas uzbrukumus
Nākamo:.NET Core programmas daudzvalodu lasīšanas un rakstīšanas resursu (.resx) faili
 Saimnieks| Publicēts 06.06.2023 22:42:46 |
SequentialGuidValueGenerator ģenerē secīgas GUID vērtības, kas ir optimizētas lietošanai ar Microsoft SQL Server klastera atslēgām vai indeksiem, kā rezultātā tiek nodrošināta labāka veiktspēja nekā nejaušajām vērtībām. Šis ir noklusējuma ģeneratora komplekts, lai ģenerētu SQL Server GUID kolonnas, kad tās tiek pievienotas.

Hipersaites pieteikšanās ir redzama.


Secīgie GUID entītiju struktūras kodolā var nebūt secīgi

Hipersaites pieteikšanās ir redzama.
 Saimnieks| Publicēts 27.01.2024 11:07:29 |
[MSSQL] SQL SERVER pasūtīja GUID un nesakārtotus GUID kā primārās atslēgas apkopošanas indeksa testus
https://www.itsvse.com/thread-10607-1-1.html
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com