sql >> Databáze >  >> RDS >> Mysql

Spuštění funkce ORDER BY RAND() v mysql trvá dlouho

Jdu na řešení.

 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

Toto je rychlejší než můj dotaz.

MySQL vybere 10 náhodných řádků ze 600 kB řádky rychle

Zde je řešení.

Díky



  1. aktualizujte dvě tabulky v jediném dotazu v mysql

  2. Volání funkce modelu v zobrazení codeigniter

  3. Facebook user_id :big_int, int nebo string?

  4. Dotaz MySQL pro počítání jedinečných domén z pole e-mailové adresy