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

Ansehen: 17091|Antwort: 3

[Quelle] Verwenden Sie Guid als Primärschlüssel und int als Leistungsvergleich für den Primärschlüssel

[Link kopieren]
Veröffentlicht am 09.10.2019 16:48:35 | | | |
Beim Design der Datenbank verwenden wir oft Guid oder int als Hauptschlüssel, und nach dem Wissen, das wir gelernt haben, haben wir immer das Gefühl gehabt, dass int als Hauptschlüssel effizienter ist, aber ohne sorgfältiges Testen unmöglich ist

Erklären Sie den Grund. Es ist passiert, dass ich heute bei der Optimierung der Datenbank auf dieses Problem gestoßen bin, also habe ich einen Test gemacht.

Testumgebung:

Desktop-PC Pentiun(R) 4 CPU 3,06GHz
Gewinne XP Profi
1,5G DDR RAM
SQL Server 2005 Personal  


Testprozess:

Erstens: Erstelle eine Testdatenbank, Test

Die Testergebnisse sind wie folgt:



Wie oben erwähnt, ist die Effizienz der Verwendung von int als Primärschlüssel im Vergleich zur Verwendung von guid als Hauptschlüssel verbessert, insbesondere bei einer Verbindungsanfrage und dem Löschen von Datensätzen.

Außerdem trat bei der heutigen Datenabfrage mit dem Hauptschlüssel im GUID die Abfragezeitabfrage wiederholt auf, da mehrere Unterfrageergebnisse verschachtelt wurden. Deshalb bin ich dafür, int als Hauptschlüssel zu verwenden, und ich stimme Guid als Hauptschlüssel nicht zu.
Die oben genannten Ansichten spiegeln persönliche Meinungen wider, und jeder ist eingeladen, seine Meinung zu äußern und die Vor- und Nachteile von GUID und INT als Hauptschlüssel zu erklären.

Folgetests:


Nachdem die Brüder ihn daran erinnert haben, wurde heute ein nicht-geclusterter Index zu zwei Untertabellen hinzugefügt:

ERSTELLEN SIE EINEN NICHT-GECLUSTERTEN INDEX Index_Detail_Guid Test_Guid_Detail(Guid)
ERSTELLEN SIE EINEN NICHT-GECLUSTERTEN INDEX Index_Detail_id AUF Test_Int_Detail(id)
Dann führte ich eine interne Verbindungsfrage durch und stellte fest, dass, wie @Xu Shaoxia sagte, die Effizienz tatsächlich nicht offensichtlich genug ist, um mehr als 50 % anzuzeigen, und im Grunde nur etwa 23 % Verbesserung, was immer noch akzeptabel ist.

Daher wird es empfohlen

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 Uniqueidentifier sein, und man sollte daran denken, den "aggregierten Index" des Primärschlüssels zu kündigen

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.





Vorhergehend:A182 Wu Xiaobo "Neues Weißbuch der Mittelschicht 2019"
Nächster:Eine Sammlung der neuesten Ressourcen des Fan Deng Reading Club
 Vermieter| Veröffentlicht am 08.02.2021 11:03:12 |
Test
 Vermieter| Veröffentlicht am 08.02.2021 11:03:31 |

Veröffentlicht am 20.03.2025 16:13:51 |
Die Migration des Int Primary Key ist kein großes Problem, solange der INT Primary Key während der Migration vorübergehend storniert wird und der Self-Increment nach der Migration geöffnet wird
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