Generador de UUID v7
Cree UUID versión 7 que se ordenan por fecha de creación, ideales como claves primarias de base de datos.
Generar UUID v7 ordenados por tiempo
UUID v7 reúne lo mejor de dos mundos: es único sin coordinación, como un UUID aleatorio, y se ordena por fecha de creación, como un ID autoincremental. Por eso es la versión que hoy recomiendan la mayoría de las bases de datos y ORM para las claves primarias.
Esta página abre el generador de UUID con la versión 7 seleccionada. Los primeros 48 bits salen de su reloj; el resto, del generador aleatorio seguro del navegador.
Por qué el orden importa en las bases de datos
La mayoría de las bases de datos relacionales guardan las claves primarias en un árbol B. Una clave v4 aleatoria cae en algún punto intermedio del índice en cada inserción, lo que obliga a dividir páginas y dispersa filas relacionadas por el disco. Una clave v7 es casi siempre mayor que la anterior, así que las filas nuevas se añaden al final, igual que con una secuencia de enteros. En tablas con millones de filas, la diferencia en velocidad de inserción y tamaño del índice es considerable.
v4, v7 y ULID comparados
| UUID v4 | UUID v7 | ULID | |
|---|---|---|---|
| Ordenable por tiempo | No | Sí | Sí |
| Bits aleatorios | 122 | 74 | 80 |
| Estándar | RFC 9562 | RFC 9562 | Especificación comunitaria |
| Cabe en una columna UUID | Sí | Sí | Requiere conversión |
| Revela la fecha de creación | No | Sí | Sí |
Leer la marca de tiempo
Pegue un UUID v7 en el inspector que hay debajo del generador y decodificará la hora que lleva dentro. También puede hacerlo a mano: los primeros 12 dígitos hexadecimales, sin el guion, son los milisegundos transcurridos desde 1970. Para 01926f3a-7c2b-7d4e-… eso es 0x01926f3a7c2b = 1728442956843, es decir, el 9 de octubre de 2024 a las 03:02:36,843 UTC.
UUID v7 en código
- PostgreSQL 18+:
uuidv7() - Python 3.14+:
uuid.uuid7() - Java: la biblioteca
uuid-creator,UuidCreator.getTimeOrderedEpoch() - Node.js: el paquete
uuid,import { v7 } from 'uuid' - .NET 9+:
Guid.CreateVersion7()
Cuando el orden temporal no importa, UUID v4 revela menos. Si necesita el formato al estilo de Microsoft, consulte el generador de GUID.