SQL NULLs : Briser vos intuitions

2025-01-09

Le traitement des valeurs NULL en SQL défie souvent les attentes. Ce post révèle le comportement surprenant des NULL dans les colonnes avec contraintes uniques : plusieurs NULL peuvent coexister. À travers des exemples pratiques dans SQLite, Postgres et MySQL, l’auteur montre comment les NULL se comportent différemment avec les opérateurs « = » et « IS », en expliquant les raisons sous-jacentes. Deux solutions pour garantir l’unicité sont explorées : créer une colonne générée et utiliser un index partiel. L’utilisation d’un index partiel est recommandée comme meilleure pratique, évitant ainsi l’augmentation de la taille de la table et les erreurs potentielles.

Lire plus
Développement

Convoy abandonne UUIDv4 pour les ULID : efficacité et évolutivité à l'ère du big data

2024-12-28

Lors d'une migration de base de données de MongoDB vers Postgres, Convoy a décidé de remplacer UUIDv4 par des ULID comme identificateurs uniques. L'article compare UUIDv4 et ULID, soulignant les avantages d'ULID : tri lexicographique, convivialité des URL et efficacité d'indexation de base de données améliorée, bien que avec des vitesses de génération et d'insertion légèrement plus lentes. Convoy a choisi ULID principalement pour résoudre les problèmes de performances de pagination avec de grands ensembles de données. Bien que les ULID soient marginalement plus lents à générer, les gains de performances, en particulier pour le traitement de données à grande échelle, sont considérés comme utiles. L'article discute également des risques potentiels de fuite d'informations temporelles et des implications pour les données des utilisateurs d'ULID, et mentionne brièvement l'adoption future potentielle d'UUIDv7.

Lire plus
Développement