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. 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