FmtDev
Idioma
Back to blog
March 1, 2026

Cómo UUID v7 Mejora la Indexación en Bases de Datos: Benchmarks y Análisis B-Tree

Un análisis profundo del prefijo de 48 bits de UUID v7: cómo elimina las divisiones de páginas B-Tree, reduce la amplificación de escritura y duplica el rendimiento de inserción en PostgreSQL y MySQL.

Este es un análisis técnico en profundidad sobre la mecánica de indexación de UUID v7. Durante décadas, los desarrolladores confiaron en UUID v4 para los identificadores únicos. Sin embargo, a medida que los datos escalan, la "aleatoriedad" de v4 se convierte en un enorme cuello de botella de rendimiento.

El Defecto Fatal de UUID v4

UUID v4 es completamente aleatorio. Cuando se usa como clave primaria en bases de datos como PostgreSQL o MySQL, cada nuevo registro se inserta en una ubicación aleatoria del índice B-Tree. Esto provoca:

  1. Fragmentación del Índice: La base de datos debe mover bloques de datos constantemente para dar cabida a nuevas entradas.
  2. Fallos de Caché: Como los datos están dispersos, la CPU no puede almacenar en caché la "cabeza" del índice de manera efectiva.
  3. Amplificación de Escritura: Las operaciones de disco aumentan mientras la base de datos lucha por reorganizar el árbol.

La Solución: Por qué UUID v7 es Ordenable

UUID v7 incluye un timestamp Unix Epoch en los primeros 48 bits. Esto hace que el identificador sea "ordenable por tiempo" (ordenable lexicográficamente).

Al usar UUID v7, los nuevos registros siempre se añaden al final del índice. Esto resulta en casi 0% de fragmentación y velocidades de escritura significativamente más rápidas, similares a un entero autoincremental estándar pero con la unicidad global de un UUID.

Comparativa de Rendimiento

En entornos de alta concurrencia, cambiar de v4 a v7 puede reducir el tamaño del índice hasta un 30% y mejorar el rendimiento de inserción en 2x.

Especificación Técnica:

  • Bits 0-47: Marca de Tiempo Unix (milisegundos)
  • Bits 48-51: Versión (0111 para v7)
  • Bits restantes: Entropía aleatoria para evitar colisiones.
Interactive Example
Local Execution
Generate 100 UUID v7s

Clicking will load this data into the tool locally.

Related Formatting Tool

Need to format your code right now? Use our secure tools.

Open JSON Formatter