¿Qué es UUID v7?
Un UUID v7 empieza con una marca de tiempo Unix de 48 bits en milisegundos y añade después 74 bits aleatorios. Al estar el tiempo en las posiciones altas, los valores se ordenan cronológicamente cuando se guardan como texto o como BINARY(16).
Para una base de datos eso cambia las cosas: las inserciones se acumulan al final del índice en lugar de provocar páginas dispersas, y aun así cada identificador conserva suficiente aleatoriedad para no ser predecible.
Cómo se usa
- Elige cuántos UUID v7 necesitas.
- Pulsa Generar.
- Guarda la columna como tipo nativo
uuidoBINARY(16).
Casos de uso
- Claves primarias ordenadas por fecha de creación.
- Identificadores de eventos, pedidos o mensajes que se listan en orden.
- Sustituir identificadores autoincrementales sin perder localidad de índice.
Comparativa de UUID v7
| Opción | Cuándo usarla |
|---|---|
v7 | Tiempo Unix + bits aleatorios: la opción actual para claves primarias |
v4 | Aleatorio puro: más simple, pero sin orden temporal |
v1 | Tiempo y nodo, con la marca de tiempo partida en dos bloques |
Las versiones de UUID de un vistazo
| Versión | ¿Ordenable? | Basada en | Para qué sirve |
|---|---|---|---|
| v1 | No | Marca de tiempo + dirección MAC | Sistemas antiguos que aún esperan v1 |
| v3 | No | Hash MD5 de un nombre | Identificadores deterministas donde se exige MD5 |
| v4 | No | 122 bits aleatorios | Prácticamente cualquier identificador |
| v5 | No | Hash SHA-1 de un nombre | Un mismo nombre debe dar siempre el mismo ID |
| v6 | Sí | Marca de tiempo reordenada | IDs ordenables sin renunciar al azar |
| v7 | Sí | Hora Unix en milisegundos | Claves primarias de base de datos y eventos |
| v8 | No | Tu propia disposición de bits | Formatos propios o experimentales |
Las siete versiones ocupan 128 bits y se escriben con la misma forma 8-4-4-4-12. Lo único que cambia es el significado de los bits.
Preguntas frecuentes
¿Por qué v7 es mejor que v4 en una base de datos?
Porque el prefijo temporal mantiene las inserciones cerca unas de otras. Con v4 los identificadores se reparten al azar por el índice, lo que provoca páginas fragmentadas y escrituras más caras a medida que la tabla crece.
¿Se puede saber cuándo se creó un UUID v7?
Sí, la marca de tiempo es legible, igual que en v1 y v6. Si el identificador no debe revelar cuándo se generó, usa v4.
¿Qué precisión tiene el tiempo?
Milisegundos, frente a los 100 nanosegundos de v1 y v6. Para identificadores generados por aplicaciones es más que suficiente.