Heim >Datenbank >MySQL-Tutorial >Wie speichere ich UUIDs als Zahlen in MySQL, um die Leistung zu verbessern?

Wie speichere ich UUIDs als Zahlen in MySQL, um die Leistung zu verbessern?

DDD
DDDOriginal
2024-12-04 01:18:10968Durchsuche

How to Store UUIDs as Numbers in MySQL for Enhanced Performance?

UUID als Zahl in MySQL speichern

Um die MySQL-Leistung zu verbessern, wird empfohlen, UUIDs als Zahlen statt als Zeichenfolgen zu speichern. Diese Optimierung nutzt die schnelleren Binärverarbeitungsfunktionen von MySQL.

Konvertierungsprozess:

  1. Gedankenstriche entfernen:Entfernen Sie die Gedankenstriche aus der UUID. Konvertieren Sie beispielsweise „110E8400-E29B-11D4-A716-446655440000“ in „110E8400E29B11D4A716446655440000“.
  2. Länge berechnen:Teilen Sie die resultierende Zeichenfolgenlänge durch 2. Für UUIDs, die 32 Zeichen lang sind, ergeben 16.
  3. Binärfeld erstellen: Erstellen Sie in MySQL ein BINÄRfeld mit einer Länge, die dem berechneten Wert entspricht. Für UUIDs wäre dies BINARY(16).
  4. UUID einfügen: Verwenden Sie die Funktion UNHEX(), um die binäre Darstellung der UUID in das Feld einzufügen. Zum Beispiel:
INSERT INTO Table (FieldBin) VALUES (UNHEX("110E8400E29B11D4A716446655440000"))

Abfragen und Neuformatieren:

  1. UUID abfragen:Hexadezimale Darstellung von abrufen die UUID mit der HEX()-Funktion.
  2. Erneut einfügen Bindestriche: Fügen Sie in Ihrer Programmiersprache an den Positionen 9, 14, 19 und 24 der Hexadezimalzeichenfolge erneut Bindestriche ein, um das ursprüngliche UUID-Format zu erhalten.

Beispiel:

CREATE TABLE test_table (
    field_binary BINARY(16) NULL,
    PRIMARY KEY (field_binary)
);

INSERT INTO test_table (field_binary) VALUES (UNHEX('110E8400E29B11D4A716446655440000'));

SELECT HEX(field_binary) AS field_binary FROM test_table;

Das obige ist der detaillierte Inhalt vonWie speichere ich UUIDs als Zahlen in MySQL, um die Leistung zu verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn