Substituto para a função UUID Versão 1 do MySQL?

Contexto

Aplicação Web, PHP 5, MySQL 5.0.91

O problema

Eu recentemente mudei de usar um inteiro auto-incrementado para um UUID como uma chave primária para algumas das minhas tabelas. Ao gerar UUID's via MySQL'sUUID() função, eles são extremamente semelhantes uns aos outros:

| uuid                                 |
----------------------------------------
| 1e5988da-afec-11e1-9877-5464f7aa6d24 |
| 408092aa-afad-11e1-9877-5464f7aa6d24 |
  ^------^   ^^
  1      8   11-12

Como você pode ver, apenas os 8 primeiros caracteres e os 11º e 12º são diferentes. Eu entendo que o UUID Versão 1 usa um registro de data e hora e um endereço MAC de hardware para gerar o UUID. No entanto, estou hesitante em usar a Versão 1 por causa dessas semelhanças (e o fato de que o endereço MAC nunca mudará, no meu caso). Além disso, se o endereço MAC nunca mudar, a maior parte do UUID é inútil e está perdendo espaço.

Minha função UUID personalizada

Como experiência, escrevi um gerador UUID personalizado em PHP:

public static function GenerateUUID()
{
    return
    substr(sha1(Account::GetUsername() . Account::GetUserID()), 18, 8) . "-" .
    substr(md5(time()), rand() % 28, 4) . "-" . 
    substr(md5(date("Y")), rand() % 28, 4) . "-" . 
    substr(sha1(rand()), 20, 4) . "-" . 
    substr(sha1(rand() % PHP_INT_MAX), 17, 12);
}

Uma amostra dos resultados:

| uuid                                 |
----------------------------------------
| 574d18c2-5080-bac9-5597-45435f363ea1 |
| 574d18c2-30d4-8b5b-4ffd-001744d3d287 |

Aqui, os primeiros 8 caracteres são idênticos para o mesmo usuário. Isso foi planejado, mas não necessário.

A questão

Existe uma maneira preferida / recomendada de gerar um UUID da Versão 4 ou Versão 5?dentro de uma consulta do MySQL?

Caso contrário, é aceitável gerar um UUID personalizado no PHP (como acima) que não esteja em conformidade com uma especificação?

Restrições

Estou usando um plano de hospedagem compartilhada com acesso por linha de comando, mas não posso modificar a instalação existente do MySQL.Eu preferiria evitar pacotes / bibliotecas de terceiros.

Notas

Não realizo e não realizarei operações de mesclagem, sincronização ou outras operações que exijam um GUID que contenha o endereço MAC. Esse não é o problema aqui.

questionAnswers(2)

yourAnswerToTheQuestion