Requisiti: Durante un recente colloquio, mi è stato chiesto quale sia la differenza tra SQL Server database int e guid come chiave principale.Entrambi hanno pro e contro, ti preghiamo di valutarli in base alle tue reali situazioni di business。
Testo originale 1:Il login del link ipertestuale è visibile.
Vantaggi dell'uso dell'INT come chiave primaria:
1. Richiede uno spazio di archiviazione dati ridotto, solo 4 byte.
2. Le prestazioni dell'uso dell'INT per le operazioni di inserimento e aggiornamento sono migliori rispetto a quelle del GUID, quindi l'uso dell'int migliorerà le prestazioni dell'applicazione.
3. Operazioni di indice e di giunzione, int ha le migliori prestazioni.
4. Facile da ricordare.
5. Supporto per ottenere l'ultimo valore tramite una funzione, come: Scope_Indentity().
Svantaggi nell'usare l'INT come chiave primaria
1. Se c'è un'operazione frequente di fusione delle tabelle, può esserci duplicazione delle chiavi primarie.
2. Ci sono restrizioni sull'ambito dell'uso dei dati INT. Se ci sono grandi quantità di dati, possono superare l'intervallo di valori INT.
3. È difficile elaborare tabelle dati distribuite e memorizzate.
Vantaggi dell'uso del GUID come chiave primaria:
1. È unico.
2. Ci sono poche opportunità di duplicazione.
3. È adatto per operazioni di inserimento e aggiornamento su una grande quantità di dati.
4. Il fusione dati tra server è molto comoda.
Svantaggi dell'uso del GUID come chiave primaria:
1. Lo spazio di archiviazione è grande (16 byte), quindi occuperà più dimensioni del disco.
2. È difficile da ricordare. Le prestazioni dell'operazione di join sono inferiori a quelle di int.
3. Non esiste una funzione integrata per ottenere l'ultima chiave primaria GUID generata.
4. Il GUID come chiave primaria verrà aggiunto ad altri indici sulla tabella, quindi ridurrà le prestazioni.
Sommario:
Quanto sopra elenca i vantaggi e gli svantaggi dei tipi di dati GUID e INT come chiavi primarie. Penso che per volumi di dati grandi sia consigliato usare il guid come chiave primaria. mentreUsare l'intelligenza ti darà le migliori prestazioni。
Commento: UsaLe prestazioni GUID ordinate migliorano molto。
Testo originale due:Il login del link ipertestuale è visibile.
L'identità è un tipo di tipo intero, decimale senza definizione decimale, bigint è accettabile
Il guid è binario fisso(16), cioè 16 byte
L'identità viene incrementata (o sottratta), e il GUID è casuale, quindi quando i dati vengono inseriti,Il primo non produce frammenti, mentre il secondo sì, e poiché il secondo è fuori ordine, l'ordine deve essere regolato quando viene inserito, quindi il primo è generalmente migliore del secondo in termini di prestazioni.
Una grande quantità di informazioni è solitamente suddivisa in tabelle, quindi l'identità è ancora più adatta in molti casi
Per quanto riguarda il significato della chiave primaria, dipende da come la consideri nella progettazione; per l'elaborazione dei dati stessa, la chiave primaria non deve necessariamente avere un significato, e se richiedi che la chiave primaria contenga significato aziendale, allora la chiave primaria identità ovviamente è priva di significato, ma in generale è meglio separare il significato aziendale dall'elaborazione dei dati, il business è in continuo cambiamento; se vuoi portare il significato alla chiave principale del design della tabella, allora il business cambia, dovrai modificare di più la struttura della tabella.
Testo originale tre:Il login del link ipertestuale è visibile.
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 univoco e assicurarsi di ricordarloAnnulla la chiave primaria "Indici aggregati”
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.
(Fine)
|