UUID
renvoie un identifiant unique universel
(espérons-le également unique s'il est également importé dans une autre base de données).
Pour citer MySQL doc (c'est moi qui souligne):
Par contre un simple INT
clé d'identification primaire (par exemple, AUTO_INCREMENT ) renverra un entier unique pour la base de données spécifique et la table de base de données, mais qui n'est pas universellement unique (donc si importé dans une autre base de données, il y a des chances qu'il y ait des conflits de clé primaire).
En termes de performances, il ne devrait pas y avoir de différence notable en utilisant l'auto-increment
sur UUID
. La plupart des messages (dont certains par les auteurs de ce site), le déclarent comme tel. Bien sûr UUID
peut prendre un peu plus de temps (et d'espace), mais ce n'est pas un goulot d'étranglement de performance pour la plupart (sinon tous) les cas. Avoir une colonne comme Primary Key
devrait faire les deux choix égaux par rapport à la performance. Voir les références ci-dessous :
- À
UUID
ou non enUUID
? - Mythes,
GUID
vsAutoincrement
- Performances :
UUID
vsauto-increment
dans cakephp-mysql UUID
performances dans MySQL ?- Clés primaires :
ID
s par rapport àGUID
s (codage d'horreur)
(UUID
vs auto-increment
résultats de performance, adaptés de Mythes, GUID
vs Autoincrement
)
UUID
avantages / inconvénients (adapté de Clés primaires :ID
s par rapport à GUID
s
)
Remarque
Je lirais attentivement les références mentionnées et déciderais d'utiliser UUID
ou non selon mon cas d'utilisation. Cela dit, dans de nombreux cas, UUID
s serait en effet préférable. Par exemple on peut générer UUID
s sans utiliser/accéder à la base de données, ou même utiliser UUID
s qui ont été pré-calculés et/ou stockés ailleurs. De plus, vous pouvez facilement généraliser/mettre à jour votre schéma de base de données et/ou votre schéma de clustering sans avoir à vous soucier de l'ID
s casser et provoquer des conflits.
En termes de collisions possibles, par exemple en utilisant v4 UUIDS (aléatoire), la probabilité de trouver un doublon dans 103 billions d'UUID version 4, c'est un sur un milliard.