AG UUID

UUID vs clé primaire à entier auto-incrémenté

Compare l'UUID et l'entier auto-incrémenté comme clé primaire de base de données.

Entier auto-incrémenté

Court, rapide et doté d'une bonne localité d'index. En revanche, il est difficile de fusionner plusieurs bases de données, la numérotation séquentielle révèle le nombre total d'enregistrements, et il est compliqué pour l'application de générer les identifiants à l'avance ou de les produire de façon distribuée.

UUID

Dans un environnement distribué, chaque nœud peut en générer sans risque de collision et les valeurs sont difficiles à prédire. En contrepartie, ses 128 bits sont plus volumineux qu'un entier, et un v4 aléatoire s'insère de façon éparse dans l'index, ce qui peut dégrader les performances en écriture.

Critères de choix

Pour un système interne reposant sur une base de données unique, l'entier est simple et efficace. Pour un système distribué, une API publique ou la fusion de sources multiples, l'UUID est préférable, en particulier le v7 trié chronologiquement. Il est également courant de combiner une clé primaire entière interne avec un UUID destiné à l'exposition publique.