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: 17091|Răspunde: 3

[Sursă] Folosește guid ca cheie primară și int ca comparație de performanță a cheii principale

[Copiază linkul]
Postat pe 09.10.2019 16:48:35 | | | |
În proiectarea bazei de date, folosim adesea guid sau int ca cheie principală, iar conform cunoștințelor pe care le-am învățat, am simțit întotdeauna că int este mai eficient ca cheie principală, dar este imposibil fără testare atentă

Explică motivul. S-a întâmplat ca, în timpul optimizării bazei de date de astăzi, să am întâmpinat această problemă, așa că am făcut un test.

Mediul de testare:

PC desktop Pentiun(R) 4 CPU 3.06GHz
Win XP profesionist
1,5G DDR RAM
SQL Server 2005 Personal  


Procesul de testare:

Mai întâi, creează o bază de date de testare, Test

Rezultatele testelor sunt următoarele:



După cum s-a menționat mai sus, eficiența utilizării int ca cheie primară este îmbunătățită comparativ cu utilizarea guid ca cheie principală, mai ales când există o interogare de conexiune și ștergerea înregistrărilor.

Mai mult, în interogarea de date cu cheia principală din GUID de astăzi, timeout-ul interogării a apărut repetat din cauza cuibării mai multor rezultate sub-interogări. Prin urmare, sunt în favoarea folosirii lui int ca cheie principală și nu sunt de acord cu guid ca cheie principală.
Opiniile de mai sus reprezintă opinii personale, iar oricine este binevenit să-și exprime opiniile și să explice avantajele și dezavantajele ghidului și intelecției ca elemente principale.

Teste de urmărire:


După ce frații li le-au reamintit, astăzi a fost adăugat un index negrupat în două subtabele:

CREEAZĂ Index_Detail_Guid DE INDEX NECLUSTERAT PE Test_Guid_Detail(GHID)
CREEAZĂ Index_Detail_id INDEXAȚI NECLUSTERAȚI PE Test_Int_Detail(ID)
Apoi am făcut o interogare internă a conexiunii și am descoperit că, așa cum a spus @Xu Shaoxia, eficiența nu este suficient de evidentă pentru a indica mai mult de 50%, ci practic doar o îmbunătățire de aproximativ 23%, ceea ce este totuși acceptabil.

Prin urmare, este recomandat

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 se folosește tipul Guid ca cheie primară, tipul de date ar trebui să fie unic identificator și să nu uitați să anulați "indexul agregat" al cheii primare

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.





Precedent:A182 Wu Xiaobo "Noua carte albă a clasei de mijloc 2019"
Următor:O colecție a celor mai noi resurse ale Clubului de Lectură Fan Deng
 Proprietarul| Postat pe 08.02.2021 11:03:12 |
testa
 Proprietarul| Postat pe 08.02.2021 11:03:31 |

Postat pe 20.03.2025 16:13:51 |
Migrarea cheii primare INT nu este o problemă mare, atâta timp cât cheia primară INT este temporar anulată în timpul migrării și apoi se deschide auto-incrementul după migrare
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