SQL NULLs: Rompiendo tu intuición

2025-01-09

El tratamiento de valores NULL en SQL a menudo desafía las expectativas. Esta publicación revela el comportamiento sorprendente de los NULL en columnas con restricciones únicas: múltiples NULL pueden coexistir. A través de ejemplos prácticos en SQLite, Postgres y MySQL, el autor demuestra cómo los NULL se comportan de manera diferente con los operadores '=' e 'IS', explicando las razones subyacentes. Se exploran dos soluciones para garantizar la unicidad: crear una columna generada y usar un índice parcial. Usar un índice parcial se recomienda como mejor práctica, evitando aumentos en el tamaño de la tabla y posibles errores.

Leer más
Desarrollo

Convoy abandona UUIDv4 y adopta ULIDs: eficiencia y escalabilidad en la era del big data

2024-12-28

Durante una migración de base de datos de MongoDB a Postgres, Convoy decidió reemplazar UUIDv4 con ULIDs como identificadores únicos. El artículo compara UUIDv4 y ULIDs, destacando las ventajas de ULID: capacidad de ordenación lexicográfica, facilidad de uso en URL y eficiencia mejorada de indexación de bases de datos, aunque con velocidades de generación e inserción ligeramente más lentas. Convoy eligió ULIDs principalmente para resolver problemas de rendimiento de paginación con grandes conjuntos de datos. Si bien los ULIDs son marginalmente más lentos de generar, las ganancias de rendimiento, especialmente para el procesamiento de datos a gran escala, se consideran valiosas. El artículo también analiza los posibles riesgos de filtración de información temporal y las implicaciones para los datos del usuario de ULIDs, y menciona brevemente la posible adopción futura de UUIDv7.

Leer más
Desarrollo Base de datos