"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué almacenar UUID como números en MySQL para mejorar el rendimiento?

¿Por qué almacenar UUID como números en MySQL para mejorar el rendimiento?

Publicado el 2025-02-06
Navegar:793

Why Store UUIDs as Numbers in MySQL for Improved Performance?

almacenar uUids como números en mysql

almacenar uuids como cadenas en mysql puede dar lugar a problemas de rendimiento, especialmente cuando la indexación está involucrada. Un enfoque alternativo sugerido por un experto es almacenar UUID como números para mejorar el rendimiento. Explore cómo se puede hacer en Ruby.

Eliminar guiones y transformar en binary

el primer paso es eliminar los guiones de la uuid. Por ejemplo, un UUID como "110E8400-E29B-11D4-A716-4466655440000" se convierte en "110E8400E29B11D4A716446655440000".

ya que los uuids consisten en 128 bits, podemos almacenarlos como un tipo de datos binarios (16) (16) (16). Tipos de datos binarios en mySQL Use la representación binaria, que es más eficiente para procesar que las cadenas.

Ejemplo sql Query

para insertar un UUID en un campo binario, use La siguiente consulta:

Inserte en table_name (field_binary) valores (unhex ("110e8400e29b11d4a716446655440000")
INSERT INTO table_name (field_binary) VALUES (UNHEX("110E8400E29B11D4A716446655440000"))
para recuperar el uuid, use la siguiente consulta:

sex (ex ((y&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&D ((&&&] Hex ( field_binary) como field_binary desde table_name

INSERT INTO table_name (field_binary) VALUES (UNHEX("110E8400E29B11D4A716446655440000"))
ruby ​​Code Integration

en Ruby, puede usar la gema UUIDTools para generar uuids y convertirlos en binario. La gema proporciona métodos como uuid.new y uuid.hex_to_bin. Por ejemplo:

requiere 'uuidtools' # Generar un uuid como cadena uuid = uuid.new # Retirar guiones y convertir a binario binary_uuid = uuid.to_s.gsub ("-", "") .hex_to_bin # Guarde el uuid binario en mysql # ... # Recupere el uuid binario de mysql # ... # Reconstruya el uuid original con guiones new_uuid = binary_uuid.bin_to_hex.gsub (/(. {8}) (. {4}) (. {4}) (. {4}) (. {12})/, '\ 1- \ 3 -\ 4- \ 5 ')

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')
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3