MySQLコマンドやSQL文に関する各種メモ書き:タグ「ランダム」での検索

MySQLでランダムにデータをとりだす。を高速化する。

MySQLでランダムにデータを「10件」取り出すには

SELECT * FROM table ORDER BY rand() limit 0 10;

とします。

ちなみにpostgreSQLでは

SELECT * FROM table ORDER BY random();

と書きます。

しかしこれはテーブル全件を走査するので非常に遅い。

そこで少し早くするには以下のようにします。

SELECT id , data FROM table ORDER BY rand() ;

で取り出したいカラムのみを指定する。

これだけでずいぶんと速くなります。

No.467
04/16 16:51

edit

ランダム