Heim >Datenbank >MySQL-Tutorial >Wie kann ich den UUID-Speicher in MySQL optimieren und die Abfrageleistung verbessern?

Wie kann ich den UUID-Speicher in MySQL optimieren und die Abfrageleistung verbessern?

DDD
DDDOriginal
2024-11-16 12:18:03916Durchsuche

How can I optimize UUID storage in MySQL and improve query performance?

Optimierung der UUID-Speicherung in MySQL: Konvertieren in eine Zahl

Während UUIDs Eindeutigkeit bieten, kann ihre Speicherung als Zeichenfolgen in MySQL die Leistung beeinträchtigen. Um die Effizienz beim Datenabruf zu verbessern, empfiehlt es sich, UUIDs stattdessen als Zahlen zu speichern.

Konvertierungsprozess

  1. Striche entfernen:
    Entfernen Sie die Bindestriche aus der UUID, z. B. „110E8400-E29B-11D4-A716-446655440000“ wird zu „110E8400E29B11D4A716446655440000“.
  2. BINARY(16) Feld:
    MySQL speichert UUIDs effizient in BINÄRE Felder. Da UUIDs 128 Bit haben, ist BINARY(16) ideal und bietet Platz für die volle UUID-Größe.
  3. Einfügen mit UNHEX():
    Fügen Sie die UUID in das BINARY-Feld ein mit der Funktion UNHEX(), z.B.:

    INSERT INTO Table (FieldBin) VALUES (UNHEX("110E8400E29B11D4A716446655440000"))
  4. Abfrage mit HEX():
    Um die UUID abzurufen, verwenden Sie die HEX()-Funktion, z.B.:

    SELECT HEX(FieldBin) AS FieldBin FROM Table
  5. Striche erneut hinzufügen:
    In Fügen Sie in Ihrem Ruby-Code die Bindestriche an den entsprechenden Positionen erneut ein, damit sie dem ursprünglichen UUID-Format entsprechen.

Beispiel

require 'mysql2'

client = Mysql2::Client.new(
  host: 'localhost',
  username: 'root',
  password: 'password',
  database: 'test_database'
)

uuid_binary = client.query(
  'SELECT HEX(FieldBin) AS FieldBin FROM test_table'
).first['FieldBin']

uuid = uuid_binary.insert(9, '-').insert(14, '-').insert(19, '-').insert(24, '-')

puts uuid

Durch Speichern von UUIDs als Zahlen können Sie den Datenabruf in MySQL optimieren und so die Abfrageleistung deutlich verbessern.

Das obige ist der detaillierte Inhalt vonWie kann ich den UUID-Speicher in MySQL optimieren und die Abfrageleistung 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