"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi stocker les UUID comme nombres dans MySQL pour améliorer les performances?

Pourquoi stocker les UUID comme nombres dans MySQL pour améliorer les performances?

Publié le 2025-02-06
Parcourir:574

Why Store UUIDs as Numbers in MySQL for Improved Performance?

stockant les uuids en tant que nombres dans mysql

stockant des uuids comme des chaînes dans MySQL peuvent entraîner des problèmes de performances, en particulier lorsque l'indexation est impliquée. Une autre approche suggérée par un expert consiste à stocker des UUID en tant que nombres pour améliorer les performances. Explorons comment cela peut être fait dans Ruby.

Suppression des tirets et transformant en binaire

La première étape consiste à supprimer les tirets de l'UUID. Par exemple, un UUID comme "110E8400-E29B-11D4-A716-446655440000" devient "110e8400e29b11d4a716444655440000".

Puisque UUIDS comprend 128 bits, nous pouvons les stocker en tant que type de données binaires (16) dans le type de données dans Mysql. Les types de données binaires dans MySQL utilisent la représentation binaire, qui est plus efficace pour le traitement que les chaînes.

Exemple SQL Query

pour insérer un UUID dans un champ binaire, utilisez La requête suivante:

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

Sélectionner le UUID, utilisez la requête suivante:

SELECT HEX(field_binary) AS field_binary FROM table_name

Ruby Code Integration

Dans Ruby, vous pouvez utiliser le gem UuidTools pour générer des uuids et les convertir en binaire. Le gemme fournit des méthodes comme uuid.new et uuid.hex_to_bin. Par exemple:

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})/, '\1-\2-\3-\4-\5')

En suivant ces étapes, vous pouvez stocker et récupérer efficacement les uuids comme nombres binaires dans MySQL, améliorer les performances lorsque vous utilisez des uuids indexés.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3