Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 3812|Răspunde: 2

[Sursă] [Întoarce] (MSSQL) Baza de date SQL Server int și guid pentru compararea cheilor principale

[Copiază linkul]
Postat pe 06.06.2023 22:17:40 | | |
Cerințe: În timpul unui interviu recent, am fost întrebat care este diferența dintre inteligența bazei de date SQL Server și GHID ca cheie principală.Ambele au avantaje și dezavantaje, te rog să le evaluezi în funcție de scenariile tale reale de afaceri

Textul original 1Autentificarea cu hyperlink este vizibilă.

Avantaje ale utilizării INT ca cheie principală:

1. Necesită un spațiu mic de stocare a datelor, doar 4 octeți.

2. Performanța utilizării INT pentru operațiuni de inserare și actualizare este mai bună decât cea a GUID, astfel că utilizarea int va îmbunătăți performanța aplicației.

3. Operațiuni de index și join, int are cea mai bună performanță.

4. Ușor de reținut.

5. Suport pentru obținerea celei mai recente valori printr-o funcție, cum ar fi: Scope_Indentity().

Dezavantaje ale utilizării INT ca cheie principală

1. Dacă există o operare frecventă a tabelelor de fuziune, poate exista duplicarea cheilor primare.

2. Există restricții privind sfera utilizării datelor INT. Dacă există o cantitate mare de date, acestea pot depăși intervalul valorii INT.

3. Este dificil să procesezi tabelele de date distribuite stocate.

Avantajele utilizării GUID ca cheie principală:

1. Este unică.

2. Există puține oportunități pentru duplicare.

3. Este potrivit pentru operațiuni de inserție și actualizare într-o cantitate mare de date.

4. Fuziunea datelor între servere este foarte convenabilă.

Dezavantaje ale utilizării GUID ca cheie principală:

1. Spațiul de stocare este mare (16 octeți), deci va ocupa mai multă dimensiune a discului.

2. Este greu de ținut minte. Performanța operației de îmbinare este mai mică decât cea a int.

3. Nu există o funcție încorporată pentru a obține cea mai recentă cheie primară GUID generată.

4. GUID-ul ca cheie principală va fi adăugat altor indici de pe tabel, astfel încât va reduce performanța.

Rezumat:

Cele de mai sus enumeră avantajele și dezavantajele tipurilor de date GUID și INT ca chei primare. Cred că pentru volume mari de date este recomandat să folosești GUID ca cheie principală. ÎntrucâtFolosirea inteligenței îți va oferi cea mai bună performanță


Comentariu: FoloseștePerformanța GUID ordonată se îmbunătățește mult

Textul original doiAutentificarea cu hyperlink este vizibilă.

Identitatea este un tip întreg, zecimal fără definiție zecimală, bigint este acceptabil

GUID-ul este binar fix(16), ceea ce are 16 octeți

Identitatea este incrementată (sau scăzută), iar GUID este aleatoriu, astfel încât pe măsură ce datele sunt inserate,Prima nu va produce fragmente, în timp ce a doua da, iar pentru că a doua este în afara ordinii, ordinea trebuie ajustată la inserare, astfel încât prima este, în general, mai bună decât a doua din punct de vedere al performanței.

O cantitate mare de informații este de obicei împărțită în tabele, astfel încât identitatea este încă mai potrivită în multe cazuri

În ceea ce privește sensul cheii primare, depinde de modul în care îl iei în considerare când proiectezi; pentru procesarea datelor în sine, cheia primară nu trebuie să fie semnificativă, iar dacă ai nevoie ca cheia primară să conțină sensul afacerii, atunci cheia primară identitate este, desigur, lipsită de sens, dar, în general, este mai bine să separi sensul afacerii de procesarea datelor, afacerea este mereu în schimbare, dacă vrei să aduci sensul cheii principale a designului tabelului, atunci afacerea se schimbă, va trebui să ajustezi mai mult structura tabelului.

Textul original treiAutentificarea cu hyperlink este vizibilă.

1. În sistemele care necesită adesea migrarea datelor, se recomandă utilizarea Guid. Iar adăugarea unor indici neclusterați în câmpurile corespunzătoare de chei străine, adică câmpurile folosite pentru interogări de join, este de mare ajutor pentru îmbunătățirea performanței. Câmpul condiției unde poate fi adăugat, după caz, pentru indicii negrupați.

2. Când folosești tipul Guid ca cheie primară, tipul de date ar trebui să fie unic identificator și să te asiguri că îl ții minteAnulează cheia primară "Indici agregați

3. Pentru sistemele care nu trebuie migrate sau cele mici, este totuși foarte convenabil să folosești int ca cheie principală și există totuși o anumită îmbunătățire a eficienței.

(Sfârșit)




Precedent:ASP.NET Nucleu (20) Prevenirea atacurilor de redirecționare deschisă
Următor:Fișiere resurse multilingve (.resx) pentru programul .NET Core
 Proprietarul| Postat pe 06.06.2023 22:42:46 |
SequentialGuidValueGenerator generează valori Guid secvențiale optimizate pentru utilizare cu chei de cluster sau indici Microsoft SQL Server, rezultând performanțe mai bune decât valorile aleatorii. Acesta este generatorul setat implicit pentru a genera coloane SQL Server Guid atunci când acestea sunt adăugate.

Autentificarea cu hyperlink este vizibilă.


GUID-urile secvențiale din Entity Framework Core pot să nu fie secvențiale

Autentificarea cu hyperlink este vizibilă.
 Proprietarul| Postat pe 27.01.2024 11:07:29 |
[MSSQL] GUID-urile ordonate de SQL SERVER și GUID-urile neordonate ca teste principale de indexare a agregării cheilor
https://www.itsvse.com/thread-10607-1-1.html
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com