Su preocupación, que "la mayor parte del UUID es inútil y está desperdiciando espacio" es inherente al tamaño del tipo de datos. Nunca podrá tener tantas entradas en su base de datos, como lo permite el límite teórico de 16 bytes.
De hecho, el UUID V1 es más adecuado que el V4 si usa el UUID solo como una ID de tabla, porque usa la dirección MAC y la marca de tiempo para evitar conflictos. En V4 no existe tal mecanismo, aunque prácticamente tampoco necesita preocuparse demasiado por los choques :) Debería usar V4 UUID en lugar de V1 si necesita que su UUID sea impredecible.
Además, tenga en cuenta que componer, por ejemplo, valores aleatorios de 4x4 bytes puede no ser lo mismo que crear un valor aleatorio de 16 bytes. Como siempre con criptografía y aleatoriedad:desaconsejaría implementar su propia rutina UUID::V4.
Si está instalado en su máquina, puede hacer uso de php-uuid
paquete.
Puede encontrar un código de ejemplo (que se puede usar en su aplicación tal cual) aquí:http://rommelsantor.com/clog/2012/02/23/generar-uuid-en-php/
Úselo así:
$uuid = uuid_create(1);
Los usuarios que pueden instalar paquetes en su servidor web, pueden instalar el paquete requerido, como:(aquí para ubuntu)
apt-get install php5-dev uuid-dev
pecl install uuid