Maison  >  Article  >  base de données  >  Pourquoi stocker les UUID sous forme de nombres dans MySQL pour améliorer les performances ?

Pourquoi stocker les UUID sous forme de nombres dans MySQL pour améliorer les performances ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-18 03:28:02668parcourir

Why Store UUIDs as Numbers in MySQL for Improved Performance?

Stockage des UUID sous forme de nombres dans MySQL

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

Suppression des tirets et transformation en binaire

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

Étant donné que les UUID sont constitués de 128 bits, nous pouvons les stocker en tant que type de données BINARY(16) dans MySQL. . Les types de données BINARY dans MySQL utilisent la représentation binaire, qui est plus efficace pour le traitement que les chaînes.

Exemple de requête SQL

Pour insérer un UUID dans un champ BINARY, utilisez la requête suivante :

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

Pour récupérer l'UUID, utilisez la requête suivante :

SELECT HEX(field_binary) AS field_binary FROM table_name

Intégration de code Ruby

Dans Ruby, vous pouvez utiliser la gemme UUIDtools pour générer des UUID et les convertir en binaire. La gemme fournit des méthodes telles que 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})/, '----')

En suivant ces étapes, vous pouvez stocker et récupérer efficacement les UUID sous forme de nombres binaires dans MySQL, améliorant ainsi les performances lors de l'utilisation d'UUID indexés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn