Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Alternative zu ORDER BY RAND() bei verbundenen Tabellen?

Burçin Yazıcı - Ich verwende MySQL, damit Zeitstempel keine Milli-/Mikrosekunden ergeben. Ich habe versucht, PHPs microtime() zu verwenden und das in die Abfrage einzufügen, aber dies führt immer noch dazu, dass 'temporär; using filesort' beim Erklären.

Vorerst lasse ich die Abfrage unsortiert, gebe alle Ergebnisse zurück und verwende dann PHP's

mysql_data_seek($result, rand(0, mysql_num_rows($result)-1));
$row=mysql_fetch_object($result);

um eine zufällige Zeile auszuwählen. Ich bin vorsichtig mit den Auswirkungen von mysql_data_seek auf die Leistung aber es nimmt vorerst den Druck von der Datenbank.