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

Utsikt: 17091|Svare: 3

[Kilde] Bruk guid som primærnøkkel og int som primærnøkkelens ytelsessammenligning

[Kopier lenke]
Publisert på 09.10.2019 16:48:35 | | | |
I utformingen av databasen bruker vi ofte guid eller int som hovednøkkel, og ifølge kunnskapen vi har lært, har vi alltid følt at int er mer effektivt som hovednøkkel, men det er umulig uten nøye testing

Forklar grunnen. Det skjedde at under optimaliseringen av databasen i dag, støtte jeg på dette problemet, så jeg gjorde en test.

Testmiljø:

Stasjonær PC Pentiun(R) 4 CPU 3,06GHz
Win XP profesjonell
1,5G DDR RAM
SQL Server 2005 Personal  


Testprosess:

Først, lag en testdatabase, Test

Testresultatene er som følger:



Som nevnt ovenfor er effektiviteten ved å bruke int som primærnøkkel forbedret sammenlignet med å bruke guid som hovednøkkel, spesielt når det er en tilkoblingsspørring og sletting av poster.

Dessuten, i dataspørringen med hovednøkkelen i GUID i dag, oppstod spørringstidsavbruddet gjentatte ganger på grunn av innfelling av flere underspørringsresultater. Derfor er jeg for å bruke int som hovednøkkel, og jeg er ikke enig i guid som hovednøkkel.
De ovennevnte synspunktene representerer personlige meninger, og alle er velkomne til å uttrykke sine meninger og forklare fordeler og ulemper med guid og int som hovednøkkelen.

Oppfølgingstester:


Etter å ha blitt minnet på det av brødrene, har en ikke-klynget indeks blitt lagt til to undertabeller i dag:

OPPRETT IKKE-KLYNGET INDEKS Index_Detail_Guid på Test_Guid_Detail(Guid)
OPPRETT IKKE-KLYNGET INDEKS Index_Detail_id på Test_Int_Detail(id)
Deretter gjennomførte jeg en intern tilkoblingsundersøkelse og fant ut at, som @Xu Shaoxia sa, er effektiviteten faktisk ikke åpenbar nok til å indikere mer enn 50 %, og i praksis bare rundt 23 % forbedring, noe som fortsatt er akseptabelt.

Derfor anbefales det

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 du bruker Guid-typen som primærnøkkel, bør datatypen være uniqueidentifier, og husk å huske å avbryte den "aggregerte indeksen" til primærnøkkelen

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.





Foregående:A182 Wu Xiaobo «2019 Nytt middelklasse-hvitbok»
Neste:En samling av de nyeste ressursene til Fan Deng Reading Club
 Vert| Publisert på 08.02.2021 11:03:12 |
prøve
 Vert| Publisert på 08.02.2021 11:03:31 |

Publisert på 20.03.2025 16:13:51 |
Migrasjon av int-primærnøkkel er ikke et stort problem, så lenge int-primærnøkkelen midlertidig kanselleres under migrasjonen, og deretter åpner selvinkrementen etter migrasjonen
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