Les valeurs UUID sont incroyablement fascinantes car même si les valeurs sont générées à partir du même appareil, elles ne peuvent jamais être les mêmes. Cependant, je ne vais pas entrer dans les détails des technologies utilisées pour mettre en œuvre des UUID.
Dans ce tutoriel, nous nous concentrerons sur les avantages de l'utilisation des UUIDs au lieu de INT pour les clés primaires, les inconvénients des UUID dans une base de données et comment implémenter des UUID dans MySQL.
Commençons:
Uuid dans mysql
Pour générer un UUID dans MySQL, nous utilisons la fonction UUID (). Cette fonction renvoie une chaîne UTF8 avec un groupe 5-hexadécimal sous la forme de:
aaaaaaaaa-bbbb-cccc-ddd--eeeeeeeeeee
Les trois premiers segments sont générés dans le format horodat.
Le quatrième segment de la valeur UUID est réservé pour assurer l'unicité temporaire, où la valeur horodatote baisse la monotonie.
Le segment final représente la valeur du nœud IEEE 802, signifiant l'unicité dans l'espace.
Quand utiliser UUID dans MySQL
Je sais ce que tu penses:
Si les UUID sont uniques à l'échelle mondiale, pourquoi ne les utilisons-nous pas comme les clés principales par défaut dans les tables de base de données? La réponse est à la fois simple et pas simple.
Pour commencer, les UUID ne sont pas des types de données natifs tels qu'un INT, que vous pouvez définir en tant que clé principale et auto-incrément à mesure que davantage de données sont ajoutées à la base de données.
Deuxièmement, les Uuids ont leurs inconvénients qui pourraient ne pas être applicables dans tous les cas.
Permettez-moi de partager quelques cas où l'utilisation des Uuids comme clés principales peut être applicable.
Voici quelques-uns des inconvénients de la mise en œuvre des UUID dans votre base de données.
Fonctions UUID
Dans Mysql 8.0 et plus tard, vous pouvez utiliser diverses fonctions pour contrer certains des inconvénients présentés par UUIDS.
Ces fonctions sont:
Utilisation des types de base de MySql UUID
Comme mentionné précédemment, pour implémenter UUID dans MySQL, nous utilisons la fonction UUID (). Par exemple, pour générer UUID, nous faisons:
mysql> select uuid ();
+--------------------------------------+
| UUID () |
+--------------------------------------+
| F9EB97F2-A94B-11EB-AD80-089798BCC301 |
+--------------------------------------+
1 ligne en jeu (0.01 SEC)
Table avec uuid
Créons un tableau avec des valeurs UUID et voyons comment nous pouvons implémenter de telles fonctionnalités. Considérez la requête ci-dessous:
Drop schéma si existe des uuids;
Créer des uuids de schéma;
Utiliser des uuids;
Créer la validation du tableau
(
id binaire (16) Clé primaire
));
Insérer dans la validation (ID)
VALEUR (UUID_TO_BIN (UUID ())),
(UUID_TO_BIN (UUID ())),
(UUID_TO_BIN (UUID ())),
(UUID_TO_BIN (UUID ())),
(UUID_TO_BIN (UUID ()));
Une fois tous les Uuids générés, nous pouvons les sélectionner et les convertir des valeurs binaires en chaîne UUID comme indiqué dans la requête ci-dessous:
Sélectionnez BIN_TO_UUID (ID) ID From Validation;
Voici la sortie:
Conclusion
Il n'y a pas grand-chose à couvrir sur les UUID dans MySQL, mais si vous souhaitez en savoir plus à leur sujet, envisagez de consulter la source MySQL:
https: // dev.mysql.com / doc /