Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 3812|Antwort: 2

[Quelle] [Turn] (MSSQL) SQL Server Datenbank-int und Guid zum Vergleich von Primärschlüsseln

[Link kopieren]
Veröffentlicht am 06.06.2023 22:17:40 | | |
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 1Der 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 zweiDer 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 dreiDer 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)




Vorhergehend:ASP.NET Kern (20) Verhindern offener Umleitungsangriffe
Nächster:.NET Core-Programm-mehrsprachige Lese- und Schreibressourcendateien (.resx)
 Vermieter| Veröffentlicht am 06.06.2023 22:42:46 |
SequentialGuidValueGenerator erzeugt sequentielle Guid-Werte, die für die Verwendung mit Microsoft SQL Server-Clusterschlüsseln oder -Indizes optimiert sind, was zu besserer Leistung als Zufallswerte führt. Dies ist der Standardgenerator, der SQL Server Guid-Spalten generiert, wenn sie hinzugefügt werden.

Der Hyperlink-Login ist sichtbar.


Sequentielle GUIDs im Entity Framework Core sind möglicherweise nicht sequentiell

Der Hyperlink-Login ist sichtbar.
 Vermieter| Veröffentlicht am 27.01.2024 11:07:29 |
[MSSQL] SQL SERVER ordnete GUIDs und ungeordnete GUIDs als Primärschlüsselaggregationsindextests
https://www.itsvse.com/thread-10607-1-1.html
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com