Por qué evitar UUIDv4 como clave primaria en PostgreSQL
En el desarrollo de aplicaciones SaaS modernas es común usar UUID (Universally Unique Identifier) versión 4 como claves primarias en bases de datos PostgreSQL. Sin embargo, diversos expertos y casos prácticos en la industria evidencian varias desventajas con esta práctica. UUIDv4, al ser completamente aleatorio, afecta el rendimiento, especialmente en tablas con grandes volúmenes de datos.
Impacto en el rendimiento y fragmentación de índices
El principal inconveniente radica en que los UUIDv4 generan una distribución de datos caótica: cada registro nuevo puede insertarse en cualquier parte del índice, provocando fragmentación y entorpeciendo la cache y los accesos secuenciales al disco. Esto incrementa el consumo de espacio y puede volver lentas consultas críticas en sistemas en crecimiento.
Consumo de espacio y almacenamiento
Otro impacto relevante es el aumento del tamaño de índice. Los UUID ocupan 16 bytes frente a los 4 u 8 bytes de los enteros tradicionales. En escalas grandes, esa diferencia repercute no solo en almacenamiento sino también en backups y operaciones de replicación, generando mayores costos y tiempos de respuesta.
Alternativas recomendadas para SaaS escalables
Las mejores prácticas modernas sugieren emplear enteros autoincrementales (serial, bigserial o secuencias) como claves primarias, ya que permiten inserciones ordenadas y optimizadas para el motor de PostgreSQL. Otra alternativa más segura ante necesidades de distribución global o anonimato, son los UUID ordenables (como la versión 7), que combinan unicidad con orden temporal y mejoran la eficiencia de los índices.
Mitigaciones si ya usas UUIDv4
Si ya cuentas con una base de datos productiva usando UUIDv4, existen medidas paliativas: creación de índices auxiliares basados en fechas u otros campos secuenciales, particionado lógico de tablas, o actualización progresiva a formatos de UUID que preserven cierto orden. Consultar experiencias en el ecosistema puede ayudarte a definir el camino de migración adecuado.
Conclusión
Escoger la clave primaria ideal en PostgreSQL tiene un impacto real en la escalabilidad y costos de una startup SaaS. Evitar UUIDv4 puede ahorrarte complejidad y dolores de cabeza a largo plazo, apostando por soluciones alineadas a volúmenes de datos crecientes y rendimiento óptimo.
Descubre cómo otros founders implementan estas soluciones en su arquitectura SaaS. Únete gratis y comparte tus experiencias.
Fuentes
- https://andyatkinson.com/avoid-uuid-version-4-primary-keys (fuente original)
- https://www.cybertec-postgresql.com/en/uuid-or-int-for-postgresql-primary-keys/ (fuente adicional)
- https://www.cockroachlabs.com/blog/uuid-or-int-in-postgres/ (fuente adicional)
- https://pganalyze.com/blog/postgres-uuid-vs-int (fuente adicional)












