Wie und wann kann man MySQL UUID -Typ verwenden

Wie und wann kann man MySQL UUID -Typ verwenden
Nach Weltraum und Zeit ist die universelle eindeutige Kennung, die als UUID bekannt ist, ein 128-Bit-langer Wert, der weltweit einzigartig ist. Die UUID wird vom RFC 4122 angegeben.

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.

  1. In einem gemeinsamen Szenario ist eine vollständige Einzigartigkeit erforderlich. Da UUIDs weltweit einzigartig sind, bieten sie eine perfekte Option, um Zeilen in Datenbanken zu verschmelzen und gleichzeitig die Einzigartigkeit zu erhalten.
  2. Sicherheit - UUIDs enthüllen keine Informationen zu Ihren Daten und sind daher nützlich, wenn Sicherheit ein Faktor ist. Zweitens werden sie offline generiert, ohne Informationen über das System zu enthüllen.

Im Folgenden finden Sie einige Nachteile der Implementierung von UUIDs in Ihrer Datenbank.

  1. UUIDs sind 6 Bytes im Vergleich zu Ganzzahlen, die 4 Byte sind. Das bedeutet.
  2. Wenn UUIDs indiziert werden, können sie erhebliche Leistungskosten verursachen und die Datenbank verlangsamen.
  3. Da UUIDs zufällig und einzigartig sind, können sie den Debugging -Prozess unnötig umständlich machen.

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:

  1. UUID_TO_BIN - Konvertiert UUID von Varchar in Binärdatei, was für die Speicherung in Datenbanken effizienter ist
  2. Bin_to_uuid - von binär zu varchar
  3. Is_uuid - Gibt den boolean true zurück, wenn arg gültig ist varchar uUid. Das Gegenteil ist wahr.

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/