Maison > base de données > tutoriel mysql > Comment puis-je optimiser le stockage des UUID dans MySQL et améliorer les performances des requêtes ?

Comment puis-je optimiser le stockage des UUID dans MySQL et améliorer les performances des requêtes ?

DDD
Libérer: 2024-11-16 12:18:03
original
948 Les gens l'ont consulté

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

Optimisation du stockage des UUID dans MySQL : conversion en nombre

Bien que les UUID offrent un caractère unique, leur stockage sous forme de chaînes dans MySQL peut nuire aux performances. Pour améliorer l'efficacité de la récupération des données, il est conseillé de stocker les UUID sous forme de nombres.

Processus de conversion

  1. Supprimer les tirets :
    Éliminez les tirets de l'UUID, par exemple, "110E8400-E29B-11D4-A716-446655440000" devient "110E8400E29B11D4A716446655440000".
  2. BINARY(16) Field :
    MySQL stocke efficacement les UUID dans les champs BINAIRES. Étant donné que les UUID ont 128 bits, BINARY(16) est idéal, car il prend en charge la taille complète de l'UUID.
  3. Insérer à l'aide d'UNHEX() :
    Insérez l'UUID dans le champ BINARY en utilisant la fonction UNHEX(), par exemple :

    INSERT INTO Table (FieldBin) VALUES (UNHEX("110E8400E29B11D4A716446655440000"))
    Copier après la connexion
  4. Requête à l'aide de HEX() :
    Pour récupérer l'UUID, utilisez la fonction HEX() , par exemple :

    SELECT HEX(FieldBin) AS FieldBin FROM Table
    Copier après la connexion
  5. Réajoutez des tirets :
    Dans votre code Ruby, réinsérez les tirets aux positions appropriées pour qu'ils correspondent au format UUID d'origine.

Exemple

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
Copier après la connexion

En stockant les UUID sous forme de nombres, vous pouvez optimiser la récupération de données dans MySQL, améliorant ainsi considérablement les performances des requêtes.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal