Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Substitua a função UUID Versão 1 do MySQL?


Sua preocupação, que "a maior parte do UUID é inútil e está desperdiçando espaço" é inerente ao tamanho do tipo de dados. Você nunca poderá ter tantas entradas em seu banco de dados, como o limite teórico de 16 bytes permite.

Na verdade, o UUID V1 é mais adequado do que o V4 se você usar o UUID apenas como um ID de tabela - porque ele usa endereço MAC e carimbo de hora para evitar conflitos. Na V4 não existe tal mecanismo, embora praticamente você também não precise se preocupar muito com conflitos :) Você deve usar V4 UUID em vez de V1 se você precisar que seu UUID seja imprevisível.

Além disso, observe que compor, por exemplo, valores aleatórios de 4 x 4 bytes pode não ser o mesmo que criar um valor aleatório de 16 bytes. Como sempre com criptografia e aleatoriedade:Eu desaconselharia a implementação de sua própria rotina UUID::V4.

Se instalado em sua máquina, você pode usar o php-uuid pacote.

Um código de exemplo (que pode ser usado em seu aplicativo como está) pode ser encontrado aqui:http://rommelsantor.com/clog/2012/02/23/generate-uuid-in-php/

Use assim:
$uuid = uuid_create(1);

Os usuários que são capazes de instalar pacotes em seu servidor web, podem instalar o pacote necessário, como:(aqui para ubuntu)
apt-get install php5-dev uuid-dev
pecl install uuid