Mysql
 sql >> Base de données >  >> RDS >> Mysql

Remplacer la fonction UUID Version 1 de MySQL ?

Votre préoccupation, que "la majeure partie de l'UUID est inutile et gaspille de l'espace" est inhérente à la taille du type de données. Vous ne pourrez jamais avoir autant d'entrées dans votre base de données, comme le permet la limite théorique de 16 octets.

En fait, V1 UUID est plus adapté que V4 si vous utilisez l'UUID simplement comme ID de table - car il utilise l'adresse MAC et l'horodatage pour éviter les conflits. Dans la V4, il n'y a pas un tel mécanisme, bien que pratiquement vous n'ayez pas non plus à vous soucier des conflits :) Vous devez utiliser l'UUID V4 au lieu de la V1 si vous avez besoin que votre UUID soit imprévisible.

Notez également que composer par exemple des valeurs aléatoires de 4x4 octets peut ne pas être la même chose que créer une valeur aléatoire de 16 octets.

S'il est installé sur votre machine, vous pouvez utiliser le php-uuid paquet.

Un exemple de code (qui peut être utilisé tel quel dans votre application) peut être trouvé ici :http://rommelsantor.com/clog/2012/02/23/generate-uuid-en-php/

Utilisez-le comme ceci :

$uuid = uuid_create(1);

Les utilisateurs capables d'installer des packages sur leur serveur Web peuvent installer le package requis, par exemple :(ici pour ubuntu)

apt-get install php5-dev uuid-dev
pecl install uuid