sql >> Databasteknik >  >> RDS >> Mysql

ORDER BY RAND()-funktionen tar lång tid att köra i mysql

Jag går till lösningen.

 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

Det här är snabbare än min fråga.

MySQL välj 10 slumpmässiga rader från 600K rader snabbt

Här är lösningen.

Tack



  1. PHP singleton databas anslutningsmönster

  2. Kopiera flera poster med en master-detaljer relation

  3. SQL Server:SUM() av ​​flera rader inklusive where-satser

  4. FNDCPASS &AFPASSWD