Semente Rand()
MySQL usa o relógio do sistema para propagar
RAND()
quando não há segundo valor. O valor da semente está em microssegundos e não consigo reproduzir o problema de RAND()
produzindo o mesmo valor duas vezes como você descreve. Se você abrir o MySQL Workbench e executar duas instruções ao mesmo tempo. A saída é diferente para cada um.
SELECT RAND();
SELECT RAND();
Quando você abre várias guias e obtém os mesmos resultados. É provável que seja um problema de armazenamento em cache, mas você afirma que está carimbando a URL para evitar o armazenamento em cache. Portanto, habilite o log SQL no servidor e verifique se novas consultas estão sendo chamadas.
Desempenho Rand()
ORDER BY RAND()
é lento porque requer que o MySQL leia a tabela inteira. Mesmo ORDER BY RAND() LIMIT 1
ainda requer MySQL para ler a tabela inteira. ATUALIZAÇÃO:
Você pode ver qual é o valor aleatório que o SQL está gerando.
$query = "SELECT *, RAND() AS `X`
FROM customers
WHERE customer_group='consumables' AND customer_updated < DATE_SUB(NOW(), INTERVAL 1 DAY)
ORDER BY `X`
LIMIT 10";
Isso incluirá a coluna
X
para cada linha. O valor aleatório usado para ordenar a consulta. Adicione isso à saída e veja se cada navegador é verdadeiramente retornando os mesmos conjuntos de resultados do MySQL.