2010-01-18 (月)
*order by rand() limit 1
MySQLでテーブルからランダムに1レコード取得する方法を調べると,order by rand() limit 1がたくさん出てくる.MySQLってorder byの後の式も検索に影響するのか,すごい,と思ったけど違った.普通にランダムにソートした後に1件だけ取り出すのでテーブルをフルスキャンしている.
とても小さいテーブルならともかく,まともな用途には使えない.変なことをせずに,IDを振ってから乱数でIDを指定するべきです.