Mysql
 sql >> Database >  >> RDS >> Mysql

La funzione ORDER BY RAND() richiede molto tempo per l'esecuzione in mysql

Io vado la soluzione.

 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

Questo è più veloce della mia richiesta.

MySQL seleziona 10 righe casuali da 600.000 file veloci

Ecco la soluzione.

Grazie