Eventuali duplicati:
MySQL: Alternatives to ORDER BY RAND()ORDER BY RAND() alternativa
Al momento ho una domanda che si conclude ORDER BY RAND(HOUR(NOW())) LIMIT 40
per ottenere 40 risultati casuali. L'elenco dei risultati cambia ogni ora.
Questo uccide la cache della query, che è dannosa per le prestazioni.
Puoi suggerire un modo alternativo di ottenere un insieme casuale di risultati che cambia di volta in volta? Non deve essere ogni ora e non deve essere assolutamente casuale.
io preferirei un risultato casuale, piuttosto che l'ordinamento su un campo arbitrario nella tabella, ma lo farò come ultima risorsa ...
(Questa è una lista di nuovi prodotti che voglio mescola un po 'di tanto in tanto).
Puoi fornire qualche informazione su cosa stai codificando? Suggerirei di farlo in codice invece che in sql. – jamesaharvey
"SELECT" ordinato interno? –
Potrebbe semplicemente memorizzarlo nella cache a livello di applicazione? – Greg