2009-12 << 2010-01 >> 2010-02

2010-01-18 (月)

*order by rand() limit 1

MySQLでテーブルからランダムに1レコード取得する方法を調べると,order by rand() limit 1がたくさん出てくる.MySQLってorder byの後の式も検索に影響するのか,すごい,と思ったけど違った.普通にランダムにソートした後に1件だけ取り出すのでテーブルをフルスキャンしている.

とても小さいテーブルならともかく,まともな用途には使えない.変なことをせずに,IDを振ってから乱数でIDを指定するべきです.

2009-12 << 2010-01 >> 2010-02