Heim  >  Artikel  >  Datenbank  >  Warum UUIDs als Zahlen in MySQL speichern, um die Leistung zu verbessern?

Warum UUIDs als Zahlen in MySQL speichern, um die Leistung zu verbessern?

Barbara Streisand
Barbara StreisandOriginal
2024-11-18 03:28:02667Durchsuche

Why Store UUIDs as Numbers in MySQL for Improved Performance?

Speichern von UUIDs als Zahlen in MySQL

Das Speichern von UUIDs als Zeichenfolgen in MySQL kann zu Leistungsproblemen führen, insbesondere wenn es um die Indizierung geht. Ein von einem Experten vorgeschlagener alternativer Ansatz besteht darin, UUIDs als Zahlen zu speichern, um die Leistung zu verbessern. Sehen wir uns an, wie dies in Ruby möglich ist.

Entfernen von Bindestrichen und Umwandeln in Binärdateien

Der erste Schritt besteht darin, die Bindestriche aus der UUID zu entfernen. Beispielsweise wird eine UUID wie „110E8400-E29B-11D4-A716-446655440000“ zu „110E8400E29B11D4A716446655440000“.

Da UUIDs aus 128 Bits bestehen, können wir sie als BINARY(16)-Datentyp speichern in MySQL. BINÄRE Datentypen in MySQL verwenden die binäre Darstellung, die für die Verarbeitung effizienter ist als Zeichenfolgen.

Beispiel für eine SQL-Abfrage

Um eine UUID in ein BINÄR-Feld einzufügen, verwenden Sie die folgende Abfrage:

INSERT INTO table_name (field_binary) VALUES (UNHEX("110E8400E29B11D4A716446655440000"))

Um die UUID abzurufen, verwenden Sie die folgende Abfrage:

SELECT HEX(field_binary) AS field_binary FROM table_name

Ruby Code Integration

In Ruby, Sie können das UUIDtools-Gem verwenden, um UUIDs zu generieren und sie in eine Binärdatei umzuwandeln. Das Gem stellt Methoden wie UUID.new und UUID.hex_to_bin bereit. Zum Beispiel:

require 'uuidtools'

# Generate a UUID as a string
uuid = UUID.new

# Remove dashes and convert to binary
binary_uuid = uuid.to_s.gsub("-", "").hex_to_bin

# Store the binary UUID in MySQL
# ...

# Retrieve the binary UUID from MySQL
# ...

# Reconstruct the original UUID with dashes
new_uuid = binary_uuid.bin_to_hex.gsub(/(.{8})(.{4})(.{4})(.{4})(.{12})/, '----')

Indem Sie diese Schritte befolgen, können Sie UUIDs effizient als Binärzahlen in MySQL speichern und abrufen und so die Leistung bei der Verwendung indizierter UUIDs verbessern.

Das obige ist der detaillierte Inhalt vonWarum UUIDs als Zahlen in MySQL speichern, 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