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

ORDER BY RAND()-funktionen tager lang tid at udføre i mysql

Jeg går til 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

Dette er hurtigere end min forespørgsel.

MySQL vælg 10 tilfældige rækker fra 600K rækker hurtigt

Her er løsningen.

Tak



  1. MySQL-injektion af LIKE-operatør

  2. Rails 3 Mysql-problemer

  3. Hvordan udtrækker jeg måned og år i en MySQL-dato og sammenligner dem?

  4. Dynamisk SQL - EXEC(@SQL) versus EXEC SP_EXECUTESQL(@SQL)