Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 17091|Risposta: 3

[Fonte] Usa il guid come chiave primaria e l'intelligenza come confronto delle prestazioni delle chiavi principali

[Copiato link]
Pubblicato su 09/10/2019 16:48:35 | | | |
Nella progettazione del database, spesso usiamo guid o int come chiave principale e, secondo le conoscenze apprese, abbiamo sempre ritenuto che int sia più efficiente come chiave principale, ma è impossibile senza un test attento

Spiega il motivo. È successo che durante l'ottimizzazione del database oggi, ho incontrato questo problema, quindi ho fatto un test.

Ambiente di Test:

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


Processo di Test:

Innanzitutto, crea un database di test, Test

I risultati dei test sono i seguenti:



Come detto sopra, l'efficienza dell'uso di int come chiave primaria è migliorata rispetto all'uso di guid come chiave principale, specialmente quando c'è una query di connessione e si cancella i record.

Inoltre, nella query dati con la chiave principale in GUID oggi, il timeout della query si verificava ripetutamente a causa dell'annidamento di diversi sotto-risultati della query. Perciò, sono favorevole a usare int come chiave principale, e non sono d'accordo con guid come chiave principale.
Le opinioni sopra riportate rappresentano opinioni personali, e tutti sono liberi a esprimere le proprie opinioni e spiegare i vantaggi e gli svantaggi di GHID e INT come chiave principale.

Test di follow-up:


Dopo essere stato ricordato dai fratelli, oggi è stato aggiunto un indice non raggruppato a due sottotabelle:

CREA Index_Detail_Guid INDICE NON CLUSTERIZZATO SU Test_Guid_Detail(GUIDA)
CREA Index_Detail_id INDICE NON CLUSTERIZZATO SU Test_Int_Detail(id)
Poi ho condotto una query interna sulla connessione e ho scoperto che, come ha detto @Xu Shaoxia, l'efficienza non è abbastanza evidente da indicare più del 50%, e fondamentalmente solo un miglioramento di circa il 23%, che è comunque accettabile.

Pertanto, è consigliato

1. Nei sistemi che spesso devono effettuare la migrazione dei dati, si consiglia di utilizzare Guid. E aggiungere indici non raggruppati ai campi corrispondenti della chiave esterna, cioè ai campi usati per le query di join, è di grande vantaggio per migliorare le prestazioni. Il campo della condizione dove può essere aggiunto come appropriato per indici non raggruppati.

2. Quando si utilizza il tipo Guid come chiave primaria, il tipo di dato dovrebbe essere univocoidentificatore e assicurarsi di ricordare di cancellare l'"indice aggregato" della chiave primaria

3. Per sistemi che non necessitano di migrazione, o sistemi di piccole dimensioni, è comunque molto comodo usare l'int come chiave primaria, e c'è comunque un certo miglioramento nell'efficienza.





Precedente:A182 Wu Xiaobo "Nuovo Libro Bianco sulla Classe Media 2019"
Prossimo:Una raccolta delle ultime risorse del Fan Deng Reading Club
 Padrone di casa| Pubblicato su 08/02/2021 11:03:12 |
test
 Padrone di casa| Pubblicato su 08/02/2021 11:03:31 |

Pubblicato su 20/03/2025 16:13:51 |
La migrazione della chiave primaria INT non è un grosso problema, purché la chiave primaria INT venga temporaneamente cancellata durante la migrazione, e poi si apra l'auto-incremento dopo la migrazione
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com