Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Função ORDER BY RAND() demorando muito para ser executada no mysql


Eu vou a solução.
 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

Isso é mais rápido do que a minha consulta.

MySQL seleciona 10 linhas aleatórias de 600K linhas rapidamente

Aqui está a solução.

Obrigado