UUID -Werte sind unglaublich faszinierend, denn selbst wenn die Werte aus demselben Gerät generiert werden, können sie niemals gleich sein. Ich werde jedoch nicht auf Details zu den Technologien eingehen, die zur Implementierung von UUIDs verwendet werden.
In diesem Tutorial konzentrieren wir uns auf die Vorteile der Verwendung von UUIDs anstelle von INT für Primärschlüssel, die Nachteile von UUIDs in einer Datenbank und wie UUIDs in MySQL implementiert werden sollen.
Lassen Sie uns anfangen:
Uuid in MySQL
Um eine UUID in MySQL zu generieren, verwenden wir die Funktion uUid (). Diese Funktion gibt eine UTF8-String mit einer 5-Hexadezimalgruppe in Form von:
AAAAAAAAA-BBBB-CCC-DDDDDDD-EEEEEEEEEEEEEEEEEEEEEEEAeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Die ersten drei Segmente werden als Teil des Zeitstempelformats im niedrigen, mittleren und hohen Format erzeugt.
Das vierte Segment des UUID -Wert.
Das endgültige Segment repräsentiert den IEEE 802 -Knotenwert, was die Einzigartigkeit über den Raum hinweist.
Wann man UUID in MySQL verwendet
Ich weiß, was du denkst:
Wenn UUIDs weltweit einzigartig sind, warum verwenden wir sie dann nicht als Standard -Primärschlüssel in Datenbanktabellen? Die Antwort ist sowohl einfach als auch nicht einfach.
Zu Beginn sind UUIDs keine nativen Datentypen wie ein int, die Sie als Primärschlüssel und automatische Inkremente festlegen können, wenn mehr Daten zur Datenbank hinzugefügt werden.
Zweitens haben UUIDs ihre Nachteile, die in allen Fällen möglicherweise nicht anwendbar sind.
Erlauben Sie mir, einige Fälle zu teilen, in denen die Verwendung von UUIDs als Primärschlüssel möglicherweise anwendbar ist.
Im Folgenden finden Sie einige Nachteile der Implementierung von UUIDs in Ihrer Datenbank.
UUID -Funktionen
In MySQL 8.0 und später können Sie verschiedene Funktionen verwenden, um einigen der von UUIDs präsentierten Nachteile entgegenzuwirken.
Diese Funktionen sind:
Grundlegende MySQL UUID -Typen Nutzung
Wie bereits erwähnt, verwenden wir, um UUIDs in MySQL zu implementieren, die Funktion uUid (). Zum Beispiel, um UUID zu generieren, tun wir:
MySQL> Wählen Sie uUid ();
+--------------------------------------+
| UUid () |
+--------------------------------------+
| F9EB97F2-A94B-11EB-AD80-089798BCC301 |
+--------------------------------------+
1 Zeile in Set (0.01 Sek.)
Tisch mit Uuid
Erstellen wir eine Tabelle mit UUID -Werten und sehen, wie wir solche Funktionen implementieren können. Betrachten Sie die folgende Abfrage:
Schema fallen, wenn Uuiden existiert;
Schema uuiden erstellen;
Verwenden Sie Uuids;
Tabellenvalidierung erstellen
(
ID binär (16) Primärschlüssel
);
In die Validierung einfügen (ID)
Werte (UUID_TO_BIN (UUID ())),
(UUID_TO_BIN (UUID ())),
(UUID_TO_BIN (UUID ())),
(UUID_TO_BIN (UUID ())),
(UUid_to_Bin (uUid ()));
Sobald alle UUIDs erzeugt werden, können wir sie auswählen und von Binär- zu String -UUID -Werten konvertieren, wie in der folgenden Abfrage gezeigt:
Wählen Sie Bin_to_Uuid (ID) ID aus der Validierung;
Hier ist die Ausgabe:
Abschluss
Über Uuids in MySQL gibt es nicht viel zu behandeln, aber wenn Sie mehr über sie erfahren möchten, sollten Sie die MySQL -Quelle überprüfen:
https: // dev.Mysql.com/doc/