Question

Je veux utiliser UUID comme ID pour mes objets JPA.

Je suis actuellement juste en utilisant une chaîne pour stocker l'UUID. Quel serait plus efficace?

Était-ce utile?

La solution

Comment mesurer l'efficacité vous?

Par exemple, le stockage du UUID (qui est un codage de texte d'un byte[]) comme deux valeurs long vous permettra de les comparer très rapidement sur une architecture 64 bits (beaucoup plus rapidement que la comparaison String, qui est le caractère -Par caractères). Cependant, l'efficacité de votre codage souffrirait, parce que vous devez écrire un type personnalisé.

Ce qui est important dans votre cas?


Si vous êtes intéressé par la performance au sein de la base de données, la performance dépendra quelque peu sur la base de données que vous choisissez, mais tout va essentiellement comparer UUID octet par octet. Donc, l'important est de faire une différence entre les touches plus susceptibles d'être vers le début de la clé.

UUID sont bien conçus à cet égard. La meilleure UUID est le style « au hasard ». Ils n'ont pas beaucoup de sous-chaînes communes partout, y compris le début, et ils ne fuient pas d'informations sur la machine qui les a générés. Mais, le style « timestamp » de UUID fait une bonne touche aussi bien, étant donné que les bits de poids faible (qui varient rapidement) sont d'abord dans la chaîne, tandis que les bits de poids fort (qui ne changent pas pour les UUID successifs) viennent plus tard.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top