Mysql
 sql >> база данни >  >> RDS >> Mysql

Функцията ORDER BY RAND() отнема много време за изпълнение в mysql

Отивам на решението.

 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

Това е по-бързо от моята заявка.

MySQL избира 10 произволни реда от 600K редове бързо

Ето решението.

Благодаря



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP - Вложен списък, разбит на четни колони (поправка и актуализации)

  2. не може да се свърже с mysql с php

  3. Как да стартирате RAW SQL заявка в PhalconPHP

  4. Използването на заявка води до друга заявка

  5. Посочете SSL, който да се използва за jdbc в context.xml