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

Die Ausführung der Funktion ORDER BY RAND() dauert in MySQL lange

Ich gehe die Lösung.

 SELECT p1.ID, p1.post_content, p1.post_title, p1.post_date, p1.post_name
     FROM posts as p1 JOIN
          (SELECT CEIL(RAND() *
                 (SELECT MAX(ID)
                    FROM posts)) AS id)
          AS p2
  WHERE p1.ID >= p2.id
  ORDER BY p1.ID ASC
  LIMIT 0, 24

Das ist schneller als meine Abfrage.

MySQL wählt 10 zufällige Zeilen aus 600K aus Zeilen schnell

Hier ist die Lösung.

Danke