Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 3812|Svare: 2

[Kilde] [Turn] (MSSQL) SQL Server-database int og guide for sammenligning av primærnøkkel

[Kopier lenke]
Publisert på 06.06.2023 22:17:40 | | |
Krav: Under et nylig intervju ble jeg spurt hva forskjellen er mellom SQL Server database int og guid som hovednøkkel.Begge har fordeler og ulemper, vennligst vei dem ut fra dine faktiske forretningsscenarier

Originaltekst 1Innloggingen med hyperkoblingen er synlig.

Fordeler med å bruke INT som primærnøkkel:

1. Den krever et lite datalagringsområde, bare 4 byte.

2. Ytelsen ved bruk av INT for insert- og oppdateringsoperasjoner er bedre enn for GUID, så bruk av int vil forbedre ytelsen til applikasjonen.

3. Indeks- og sammenføyningsoperasjoner, int har best ytelse.

4. Lett å huske.

5. Støtte for å oppnå den nyeste verdien gjennom en funksjon, for eksempel: Scope_Indentity().

Ulemper ved å bruke INT som primærnøkkel

1. Hvis det ofte forekommer sammenslåing av tabeller, kan det forekomme duplisering av primærnøkler.

2. Det finnes begrensninger på omfanget av bruk av INT-data. Hvis det er store mengder data, kan det overskride INT-verdiområdet.

3. Det er vanskelig å behandle distribuerte lagrede datatabeller.

Fordeler med å bruke GUID som primærnøkkel:

1. Den er unik.

2. Det er få muligheter for duplisering.

3. Den egner seg for innsettings- og oppdateringsoperasjoner i store mengder data.

4. Sammenslåing av data på tvers av servere er svært praktisk.

Ulemper ved å bruke GUID som primærnøkkel:

1. Lagringsplassen er stor (16 byte), så den vil ta opp mer diskstørrelse.

2. Det er vanskelig å huske. Ytelsen til join-operasjonen er lavere enn for int.

3. Det finnes ingen innebygd funksjon for å hente den nyeste genererte GUID-primærnøkkelen.

4. GUID som primærnøkkel vil bli lagt til andre indekser i tabellen, noe som reduserer ytelsen.

Sammendrag:

Ovenstående lister opp fordeler og ulemper ved GUID- og INT-datatyper som primærnøkler. Jeg tror for store datavolumer anbefales det å bruke guid som primærnøkkel. mensÅ bruke int gir deg best ytelse


Kommentar: BrukYtelsen med ordnet GUID forbedres mye

Originaltekst toInnloggingen med hyperkoblingen er synlig.

Identitet er en heltypetype, desimalt uten desimaldefinisjon, bigint er akseptabelt

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

identitet økes (eller trekkes fra), og guid er tilfeldig, så når data settes inn,Den førstnevnte vil ikke produsere noen fragmenter, mens den sistnevnte vil gjøre det, og fordi den sistnevnte er ute av rekkefølge, må rekkefølgen justeres når den settes inn, slik at den førstnevnte generelt er bedre enn den sistnevnte når det gjelder ytelse.

En stor mengde informasjon deles vanligvis inn i tabeller, så identitet er fortsatt mer egnet i mange tilfeller

Når det gjelder betydningen av primærnøkkelen, avhenger dette av hvordan du vurderer den når du designer; for selve databehandlingen trenger ikke primærnøkkelen å være meningsfull, og hvis du krever at primærnøkkelen inneholder forretningsbetydning, er identitetsprimærnøkkelen selvfølgelig meningsløs, men generelt sett er det bedre å skille forretningsbetydningen og databehandlingen, virksomheten endrer seg hele tiden, hvis du vil bringe meningen til hovednøkkelen i tabelldesignet, endrer virksomheten seg, og du må justere tabellstrukturen mer.

Originaltekst treInnloggingen med hyperkoblingen er synlig.

1. I systemer som ofte trenger datamigrering, anbefales det å bruke Guid. Og å legge til ikke-klyngede indekser til de tilsvarende fremmednøkkelfeltene, det vil si felt brukt til join-spørringer, er til stor fordel for å forbedre ytelsen. Feltet til where-betingelsen kan også legges til etter behov for ikke-klyngede indekser.

2. Når man bruker Guid-typen som primærnøkkel, bør datatypen være uniqueidentifier og huske denAvbryt primærnøklene "Aggregatindekser

3. For systemer som ikke trenger å migreres, eller små systemer, er det fortsatt svært praktisk å bruke int som primærnøkkel, og det er fortsatt en viss forbedring i effektivitet.

(Slutt)




Foregående:ASP.NET Kjerne (20) Forhindre åpne omdirigeringsangrep
Neste:.NET Core-programmets flerspråklige lese- og skriveressursfiler (.resx)
 Vert| Publisert på 06.06.2023 22:42:46 |
SequentialGuidValueGenerator genererer sekvensielle Guid-verdier som er optimalisert for bruk med Microsoft SQL Server klyngenøkler eller indekser, noe som gir bedre ytelse enn tilfeldige verdier. Dette er standardgeneratoren satt til å generere SQL Server Guid-kolonner når de legges til.

Innloggingen med hyperkoblingen er synlig.


Sekvensielle GUID-er i Entity Framework Core er kanskje ikke sekvensielle

Innloggingen med hyperkoblingen er synlig.
 Vert| Publisert på 27.01.2024 11:07:29 |
[MSSQL] SQL SERVER ordnede GUID-er og uordnede GUID-er som primærnøkkelaggregeringsindekstester
https://www.itsvse.com/thread-10607-1-1.html
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com