sql >> Base de Datos >  >> RDS >> Mysql

La función ORDER BY RAND () tarda mucho en ejecutarse en mysql

Voy la solución.

 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

Esto es más rápido que mi consulta.

MySQL selecciona 10 filas aleatorias de 600K filas rápido

Aquí está la solución.

Gracias