Je prévois d'utiliser les UUID fournis par le client comme clé primaire dans plusieurs tables d'une base de données MySQL.Quelles sont les différentes options et leurs compromis pour stocker un UUID dans une table MYSQL?
J'ai rencontré divers mécanismes pour stocker des UUID dans une base de données MySQL mais rien qui les compare les uns aux autres. Ceux-ci comprennent le stockage en tant que:
- BINARY (16)
- CHAR (16)
- CHAR (36)
- VARCHAR (36)
- 2 x BIGINT
Y at-il de meilleures options, comment les options se comparent-elles en termes de:
- taille de stockage?
- requête overhead? (problèmes d'index, jointures, etc.)
- facilité d'insertion et de mise à jour des valeurs du code client? (typiquement Java via JPA)
Y a-t-il des différences selon la version de MySQL utilisée ou le moteur de stockage? Nous fonctionnons actuellement en version 5.1 et prévoyions utiliser InnoDB. Je me réjouis de tout commentaire basé sur l'expérience pratique d'essayer d'utiliser les UUID. Merci.
Par curiosité, pourquoi côté client? Cela m'inquiète un peu du point de vue de la vulnérabilité du système. –
Ce n'est pas une application web, seuls les clients de confiance vont intégrer le backend sur un réseau privé. – BenM
comment pourriez-vous stocker en tant que 2xbigint, @BenM? – Chamnap