Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 3812|Svar: 2

[Kilde] [Turn] (MSSQL) SQL Server-databaseint og guide til sammenligning af primærnøgler

[Kopier link]
Opslået på 06/06/2023 22.17.40 | | |
Krav: Under en nylig samtale blev jeg spurgt, hvad forskellen er mellem SQL Server database int og guid som hovednøgle.Begge har fordele og ulemper, så vej dem venligst ud fra dine faktiske forretningsscenarier

Originaltekst 1Hyperlink-login er synlig.

Fordele ved at bruge INT som primærnøgle:

1. Det kræver et lille datalagringsområde, kun 4 bytes.

2. Ydelsen ved brug af INT til insert- og opdateringsoperationer er bedre end ved GUID, så brug af int vil forbedre applikationens ydeevne.

3. Indeks- og Join-operationer, int har den bedste ydeevne.

4. Let at huske.

5. Understøttelse af at opnå den seneste værdi gennem en funktion, såsom: Scope_Indentity().

Ulemper ved at bruge INT som primærnøgle

1. Hvis der ofte forekommer en sammenfletting af tabeller, kan der forekomme duplikering af primærnøgler.

2. Der er begrænsninger på omfanget af brugen af INT-data. Hvis der er en stor mængde data, kan det overskride INT-værdiområdet.

3. Det er vanskeligt at behandle distribuerede lagrede datatabeller.

Fordele ved at bruge GUID som primær nøgle:

1. Den er unik.

2. Der er få muligheder for duplikation.

3. Den er egnet til indsættelses- og opdateringsoperationer i store mængder data.

4. Tværserver-datasammenfælling er meget bekvemt.

Ulemper ved at bruge GUID som primærnøgle:

1. Lagerpladsen er stor (16 byte), så den vil optage mere diskstørrelse.

2. Det er svært at huske. Ydelsen af join-operationen er lavere end for int.

3. Der er ingen indbygget funktion til at hente den senest genererede GUID-primærnøgle.

4. GUID som primærnøgle vil blive tilføjet til andre indekser i tabellen, hvilket vil reducere ydeevnen.

Resumé:

Ovenstående oplister fordele og ulemper ved GUID- og INT-datatyper som primærnøgler. Jeg tror, det anbefales at bruge guide som primær nøgle for store datamængder. hvorimodBrug af int vil give dig den bedste ydeevne


Kommentar: BrugOrdered GUID-ydelsen forbedres meget

Original tekst toHyperlink-login er synlig.

Identitet er en heltypetype, decimal uden decimaldefinition, bigint er acceptabelt

Guiden er fast binær(16), som er 16 bytes

identitet øges (eller subtraheres), og guid er tilfældig, så når data indsættes,Den førstnævnte vil ikke producere fragmenter, mens den sidstnævnte vil, og fordi den sidstnævnte er ude af rækkefølge, skal rækkefølgen justeres, når den indsættes, så den første generelt er bedre end den sidstnævnte med hensyn til ydeevne.

En stor mængde information er normalt opdelt i tabeller, så identitet er stadig mere egnet i mange tilfælde

Hvad angår betydningen af primærnøglen, afhænger det af, hvordan du tænker på den, når du designer; for selve databehandlingen behøver primærnøglen ikke at være meningsfuld, og hvis du kræver, at primærnøglen indeholder forretningsbetydning, så er identitetsprimærnøglen selvfølgelig meningsløs, men generelt er det bedre at adskille forretningsbetydningen og databehandlingen, forretningen ændrer sig hele tiden, hvis du vil bringe betydningen til hovednøglen i tabeldesignet, så ændrer forretningen sig, og du bliver nødt til at justere tabelstrukturen mere.

Originaltekst treHyperlink-login er synlig.

1. I systemer, der ofte har brug for datamigrering, anbefales det at bruge Guid. Og at tilføje ikke-klyngede indekser til de tilsvarende fremmednøglefelter, altså felter brugt til join-forespørgsler, er en stor fordel for at forbedre ydeevnen. Feltet for where-betingelsen kan også tilføjes efter behov for ikke-klyngede indeks.

2. Når man bruger Guid-typen som primærnøgle, bør datatypen være uniqueidentifier og huske denAnnuller primærnøglens "Samlede indeks

3. For systemer, der ikke behøver at migreres, eller små systemer, er det stadig meget praktisk at bruge int som primær nøgle, og der er stadig en vis forbedring i effektiviteten.

(Slut)




Tidligere:ASP.NET Core (20) Forhindre åbne omdirigeringsangreb
Næste:.NET Core-programmets flersprogede læse- og skriveressourcefiler (.resx)
 Udlejer| Opslået på 06/06/2023 22.42.46 |
SequentialGuidValueGenerator genererer sekventielle Guid-værdier, der er optimeret til brug med Microsoft SQL Server klyngenøgler eller indekser, hvilket resulterer i bedre ydeevne end tilfældige værdier. Dette er standardgeneratoren, der er sat til at generere SQL Server Guid-kolonner, når de tilføjes.

Hyperlink-login er synlig.


Sekventielle GUID'er i Entity Framework Core er måske ikke sekventielle

Hyperlink-login er synlig.
 Udlejer| Opslået på 27/01/2024 11.07.29 |
[MSSQL] SQL SERVER ordnede GUID'er og uordnede GUID'er som primære nøgleaggregationsindekstests
https://www.itsvse.com/thread-10607-1-1.html
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com