Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 3812|Svar: 2

[Källa] [Turn] (MSSQL) SQL Server-databasint och guide för jämförelse av primärnyckeln

[Kopiera länk]
Publicerad på 2023-06-06 22:17:40 | | |
Krav: Under en nyligen intervju blev jag tillfrågad vad skillnaden är mellan SQL Server database int och guid som huvudnyckel.Båda har för- och nackdelar, väg dem gärna utifrån dina faktiska affärsscenarier

Originaltext 1Inloggningen med hyperlänken är synlig.

Fördelar med att använda INT som primärnyckel:

1. Den kräver ett litet datalagringsutrymme, endast 4 byte.

2. Prestandan vid användning av INT för insert- och uppdateringsoperationer är bättre än för GUID, så användning av int förbättrar applikationens prestanda.

3. Index- och Join-operationer, int har bäst prestanda.

4. Lätt att komma ihåg.

5. Stöd för att erhålla det senaste värdet genom en funktion, såsom: Scope_Indentity().

Nackdelar med att använda INT som primärnyckel

1. Om det sker en frekvent operation med sammanslagning av tabeller kan det förekomma duplicering av primärnycklar.

2. Det finns begränsningar för användningen av INT-data. Om det finns en stor mängd data kan den överskrida INT-värdeintervallet.

3. Det är svårt att bearbeta distribuerade lagrade datatabeller.

Fördelar med att använda GUID som primärnyckel:

1. Den är unik.

2. Det finns få möjligheter till duplicering.

3. Den är lämplig för insättnings- och uppdateringsoperationer i stora mängder data.

4. Databassammanslagning över servrar är mycket bekvämt.

Nackdelar med att använda GUID som primärnyckel:

1. Lagringsutrymmet är stort (16 byte), så det tar upp mer diskstorlek.

2. Det är svårt att minnas. Prestandan för join-operationen är lägre än för int.

3. Det finns ingen inbyggd funktion för att hämta den senast genererade GUID-primärnyckeln.

4. GUID som primärnyckel läggs till andra index i tabellen, vilket minskar prestandan.

Sammanfattning:

Ovan listar för- och nackdelar med GUID- och INT-datatyper som primärnycklar. Jag tror att för stora datavolymer rekommenderas att använda guid som primärnyckel. medanAtt använda int ger dig bäst prestanda


Kommentar: AnvändOrdered GUID-prestandan förbättras mycket

Originaltext tvåInloggningen med hyperlänken är synlig.

identitet är en heltyp, decimal utan decimaldefinition, bigint är acceptabelt

Guiden är fast binär(16), vilket är 16 byte

identitet ökar (eller subtraheras), och guid är slumpmässig, så när data infogas,Den förstnämnda producerar inga fragment, medan den senare gör det, och eftersom den senare är ur ordning måste ordningen justeras när den sätts in, så den förstnämnda är generellt bättre än den senare vad gäller prestanda.

En stor mängd information delas vanligtvis upp i tabeller, så identitet är fortfarande mer lämplig i många fall

När det gäller betydelsen av primärnyckeln beror det på hur du tänker på den när du designar, för själva databehandlingen behöver primärnyckeln inte vara meningsfull, och om du kräver att primärnyckeln innehåller affärsbetydelse, så är identitetsprimärnyckeln förstås meningslös, men generellt sett är det bättre att separera affärsbetydelsen och databehandlingen, företaget förändras ständigt, om du vill föra in betydelsen i huvudnyckeln i tabelldesignen, då förändras affärsmässigt, du måste justera tabellstrukturen mer.

Originaltext treInloggningen med hyperlänken är synlig.

1. I system som ofta behöver göra datamigrering rekommenderas att använda Guid. Och att lägga till icke-klustrade index till motsvarande främmande nyckelfält, det vill säga fält som används för join-frågor, är till stor nytta för att förbättra prestandan. Fältet för where-villkoret kan också läggas till vid behov för icke-klustrade index.

2. När du använder Guid-typen som primärnyckel bör datatypen vara uniqueidentifier och se till att komma ihåg denAvboka primärnyckelns "Aggregerade index

3. För system som inte behöver migreras, eller små system, är det fortfarande mycket bekvämt att använda int som primärnyckel, och det finns fortfarande en viss förbättring i effektivitet.

(Slut)




Föregående:ASP.NET Core (20) Förhindra öppna omdirigeringsattacker
Nästa:.NET Core-programmets flerspråkiga läs- och skrivresursfiler (.resx)
 Hyresvärd| Publicerad på 2023-06-06 22:42:46 |
SequentialGuidValueGenerator genererar sekventiella Guid-värden som är optimerade för användning med Microsoft SQL Server-klusternycklar eller index, vilket ger bättre prestanda än slumpmässiga värden. Detta är standardgeneratorn som är inställd för att generera SQL Server Guid-kolumner när de läggs till när de läggs till.

Inloggningen med hyperlänken är synlig.


Sekventiella GUID:er i Entity Framework Core kanske inte är sekventiella

Inloggningen med hyperlänken är synlig.
 Hyresvärd| Publicerad på 2024-01-27 11:07:29 |
[MSSQL] SQL SERVER ordnade GUID:er och oordnade GUID:er som primärnyckelaggregeringsindextester
https://www.itsvse.com/thread-10607-1-1.html
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com