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.
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