Nous envisageons d'utiliser l'UUID de valeurs de clés primaires pour notre base de données MySQL. Les données insérées est généré à partir des dizaines, des centaines, voire des milliers d'ordinateurs à distance et d'être inséré à un taux de 100-40,000 insère par seconde, et nous n'arriverons jamais à faire toutes les mises à jour.
La base de données elle-même sera généralement obtenir à environ 50M des dossiers avant le début de la réforme de données, donc pas un immense base de données, mais pas minuscule non plus. Nous sommes également rabotage à exécuter sur InnoDB, mais nous sommes ouverts à l'évolution que s'il y a un meilleur moteur pour ce que nous faisons.
Nous étions prêts à aller avec Java de Type 4 UUID, mais dans les tests ont été voir un comportement étrange. Pour l'un, nous sommes de stockage comme varchar(36) et je me rends compte maintenant, nous ferions mieux de l'aide binaire(16) - mais comment beaucoup mieux, je ne suis pas sûr.
La plus grande question est: à quel point est-ce à données aléatoires vis de l'index lorsque nous avons 50M de dossiers? Serait-il mieux si nous avons utilisé, par exemple, un type-1 UUID où les bits les plus à gauche ont été datées? Ou peut-être que nous devrions fossé Uuid entièrement et envisager auto_increment primary keys?
Je suis à la recherche des réflexions générales/conseils sur les performances de différents types de Uuid lorsqu'ils sont stockés comme un index de clé primaire dans MySQL. Merci!