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は600Kからランダムな10行を選択します行が速い

    これが解決策です。

    ありがとう



    1. PHPでの入力と出力のクリーニングの聖杯?

    2. MySqlCLIを使用して大きなCSVファイルをMySqlにインポートする最速の方法

    3. MySQLデータベースをSQLiteデータベースにエクスポートする

    4. なぜこれは私に間違ったcustomerNumberを与えるのですか?