Los valores de UUID son increíblemente fascinantes porque incluso si los valores se generan desde el mismo dispositivo, nunca pueden ser los mismos. Sin embargo, no entraré en detalles sobre las tecnologías utilizadas para implementar UUIDS.
En este tutorial, nos centraremos en las ventajas de usar UUID en lugar de int para claves primarias, las desventajas de los UUID en una base de datos y cómo implementar UUID en MySQL.
Comencemos:
Uuid en mysql
Para generar un UUID en MySQL, usamos la función uuid (). Esta función devuelve una cadena UTF8 con un grupo 5-Hexadecimal en forma de:
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeeeeee
Los primeros tres segmentos se generan como parte del formato de marca de tiempo en formato bajo, medio y alto.
El cuarto segmento del valor UUID está reservado para garantizar la singularidad temporal, donde el valor de la marca de tiempo cae monotonicidad.
El segmento final representa el valor del nodo IEEE 802, lo que significa singularidad en todo el espacio.
Cuándo usar uuid en mysql
Sé lo que estás pensando:
Si los UUID son únicos a nivel mundial, ¿por qué no las usamos como las claves primarias predeterminadas en las tablas de la base de datos?? La respuesta es simple y no simple.
Para comenzar, los UUID no son tipos de datos nativos como un INT, que puede establecer como clave principal y autoincremento a medida que se agregan más datos a la base de datos.
En segundo lugar, los UUID tienen sus inconvenientes que podrían no ser aplicables en todos los casos.
Permítame compartir algunos casos en los que el uso de UUID como claves primarias podría ser aplicable.
Los siguientes son algunos de los inconvenientes de implementación de UUID en su base de datos.
Funciones uuid
En mysql 8.0 y posterior, puede usar varias funciones para contrarrestar algunos de los inconvenientes presentados por UUIDS.
Estas funciones son:
Uso básico de tipos de uuid mysql
Como se mencionó anteriormente, para implementar UUID en MySQL, usamos la función UUID (). Por ejemplo, para generar UUID, lo hacemos:
mysql> seleccione uuid ();
+--------------------------------------+
| Uuid () |
+--------------------------------------+
| F9EB97F2-A94B-11EB-AD80-089798BCC301 |
+--------------------------------------+
1 fila en el set (0.01 seg)
Mesa con uuid
Creemos una tabla con valores UUID y vemos cómo podemos implementar dicha funcionalidad. Considere la consulta a continuación:
Capacidad de soltar si existe uuids;
Crear uuids de esquema;
Usar uuids;
Crear validación de tabla
(
ID Binaria (16) Clave principal
);
Insertar en la validación (ID)
Valores (uuid_to_bin (uuid ())),
(Uuid_to_bin (uuid ())),
(Uuid_to_bin (uuid ())),
(Uuid_to_bin (uuid ())),
(Uuid_to_bin (uuid ()));
Una vez que se generan todos los UUID, podemos seleccionarlos y convertirlos de valores de UUID binarios a cadena como se muestra en la consulta a continuación:
Seleccione Bin_to_Uuid (id) ID de validación;
Aquí está la salida:
Conclusión
No hay mucho que cubrir sobre los UUID en MySQL, pero si desea obtener más información sobre ellos, considere revisar la fuente de MySQL:
https: // dev.mysql.com/doc/