generar - uuid mysql
Almacenamiento de GUID/UUID de MySQL (2)
Me gustaría hash en un entero de 8 bytes y almacenar el número entero utilizando un algoritmo de hash de una vía de baja eficiencia y alta eficiencia como MurmurHash64A. Esto usa mucho menos espacio y puede ser indexado y / o particionado. Hay un proyecto de SourceForge que incluye funciones de MemCached para mySQL ( http://forge.mysql.com/projects/project.php?id=250 ) que puede incluir MurmurHash64A, ya que Memchached lo usa, pero no sé. O mire esta implementación de FNV para mySQL: http://www.xaprb.com/blog/2008/03/09/a-very-fast-fnv-hash-function-for-mysql/
Esta es la mejor manera que se me ocurre para convertir un GUID / UUID de MySQL generado por UUID () a un binario (16):
UNHEX(REPLACE(UUID(),''-'',''''))
Y luego almacenarlo en un BINARIO (16)
¿Hay alguna implicación de hacerlo de esta manera que yo debería saber?
No muchas implicaciones. Disminuirá un poco las consultas, pero apenas lo notarás.
UNIQUEIDENTIFIER
se almacena como 16-byte binary
internamente de todos modos.
Si va a cargar el binario en un cliente y analizarlo allí, tenga en cuenta el bit order
los bit order
, puede tener otra representación de cadena que el NEWID()
inicial NEWID()
.
La función SYS_GUID()
Oracle
es propensa a este problema, convirtiéndola en una cadena da diferentes resultados en el cliente y en el servidor.