Anforderungen: In einem kürzlichen Interview wurde ich gefragt, was der Unterschied zwischen SQL Server Datenbank-int und GUID als Hauptschlüssel ist.Beide haben Vor- und Nachteile, bitte wägt sie entsprechend euren tatsächlichen Geschäftsszenarien ab。
Originaltext 1:Der Hyperlink-Login ist sichtbar.
Vorteile der Verwendung von INT als Hauptschlüssel:
1. Sie benötigt einen kleinen Datenspeicher, nur 4 Bytes.
2. Die Leistung der Verwendung von INT für Insert- und Update-Operationen ist besser als die von GUID, sodass die Verwendung von INT die Leistung der Anwendung verbessert.
3. Index- und Join-Operationen, int hat die beste Leistung.
4. Leicht zu merken.
5. Unterstützung zur Erlangung des neuesten Werts durch eine Funktion, wie z. B. Scope_Indentity().
Nachteile der Verwendung von INT als Primärschlüssel
1. Wenn häufig Tabellen zusammengeführt werden, kann es zu Duplikationen der Primärschlüssel kommen.
2. Es gibt Einschränkungen hinsichtlich des Anwendungsbereichs der INT-Daten. Wenn eine große Datenmenge vorhanden ist, kann sie den INT-Wertbereich überschreiten.
3. Es ist schwierig, verteilte gespeicherte Datentabellen zu verarbeiten.
Vorteile der Verwendung von GUID als Hauptschlüssel:
1. Sie ist einzigartig.
2. Es gibt nur wenige Möglichkeiten zur Duplikation.
3. Es eignet sich für Einfügungs- und Aktualisierungsoperationen in großen Datenmengen.
4. Das Serverübergreifende Datenzusammenführen ist sehr bequem.
Nachteile der Verwendung von GUID als Hauptschlüssel:
1. Der Speicherplatz ist groß (16 Byte), daher nimmt er mehr Festplattengröße ein.
2. Es ist schwer, sich daran zu erinnern. Die Leistung der Join-Operation ist niedriger als die von int.
3. Es gibt keine eingebaute Funktion, um den zuletzt generierten GUID-Primärschlüssel zu erhalten.
4. Der GUID als Primärschlüssel wird zu anderen Indizes in der Tabelle hinzugefügt, was die Leistung verringert.
Zusammenfassung:
Oben aufgeführt sind die Vor- und Nachteile von GUID- und INT-Datentypen als Primärschlüssel. Ich denke, für große Datenvolumen wird empfohlen, GUID als Primärschlüssel zu verwenden. währendMit Intelligenz bekommst du die beste Leistung。
Kommentar: VerwendungDie Ordered GUID-Leistung verbessert sich erheblich。
Originaltext zwei:Der Hyperlink-Login ist sichtbar.
Identität ist ein ganztypischer Typ, dezimal ohne dezimale Definition, Bigynt ist akzeptabel
Der Guid ist ein fixes Binär(16), also 16 Bytes, also 16 Bytes.
Identity wird erhöht (oder subtrahiert), und GUID ist zufällig, sodass beim Einfügen von DatenErsteres erzeugt keine Fragmente, während letzteres es tut, und da letzteres nicht in der Reihenfolge ist, muss die Reihenfolge beim Einfügen angepasst werden, sodass erstere in Bezug auf die Leistung in der Regel besser ist als letztere.
Eine große Menge an Informationen wird üblicherweise in Tabellen unterteilt, daher ist Identität in vielen Fällen noch geeigneter
Was die Bedeutung des Primärschlüssels betrifft, hängt das davon ab, wie man ihn beim Entwurf betrachtet; für die Datenverarbeitung selbst muss der Primärschlüssel nicht bedeutungsvoll sein, und wenn man verlangt, dass der Primärschlüssel die geschäftliche Bedeutung enthält, ist der Identitätsprimärschlüssel natürlich bedeutungslos, aber im Allgemeinen ist es besser, die geschäftliche Bedeutung und die Datenverarbeitung zu trennen, das Unternehmen verändert sich ständig, wenn man die Bedeutung in den Hauptschlüssel des Tabellendesigns bringen will, dann ändert sich das Geschäft, man muss die Tabellenstruktur noch mehr anpassen.
Originaltext drei:Der Hyperlink-Login ist sichtbar.
1. In Systemen, die häufig Datenmigration benötigen, wird empfohlen, Guid zu verwenden. Und das Hinzufügen nicht-clusterter Indizes zu den entsprechenden Fremdschlüsselfeldern, also Feldern für Join-Abfragen, ist von großem Vorteil, um die Leistung zu verbessern. Das Feld der where-Bedingung kann auch bei nicht-clusterierten Indizes hinzugefügt werden.
2. Wenn der Guid-Typ als Primärschlüssel verwendet wird, sollte der Datentyp eindeutig sein, und man sollte sich diesen merkenStorniere die Primärschlüssel "Aggregierte Indizes”
3. Für Systeme, die nicht migriert werden müssen, oder für kleine Systeme ist es immer noch sehr bequem, int als Primärschlüssel zu verwenden, und es gibt weiterhin eine gewisse Effizienzsteigerung.
(Ende)
|