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')
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