Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Fungsi ORDER BY RAND() membutuhkan waktu lama untuk dieksekusi di mysql

Saya memberikan solusinya.

 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

Ini lebih cepat dari kueri saya.

MySQL memilih 10 baris acak dari 600K baris cepat

Inilah solusinya.

Terima kasih



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django dan pemrosesan paralel:

  2. Bagaimana cara melakukan Pemodelan Warisan dalam Basis Data Relasional?

  3. Apa itu kardinalitas di MySQL?

  4. MySQL - Bagaimana cara meningkatkan ukuran varchar dari kolom yang ada dalam database tanpa merusak data yang ada?

  5. mysql:temukan baris dengan nilai berulang plus kondisi