MySQL または PHP コマンドを使用してランダムな行を返す方が良いですか?
たとえば、product
10 列と 1000000 行のテーブルがあり、そこからランダムに 10 行を返したいとします。
方法 1 (ほとんどの作業は MySQL に任せます):
$query = mysql_query("SELECT * FROM product WHERE product_id in (SELECT product_id FROM product ORDER BY RAND() LIMIT 10)"); while($results[] = mysql_fetch_row($query));
方法 2 (ほとんどの作業は PHP に任せます):
$query = mysql_query("SELECT * FROM product"); while($results[] = mysql_fetch_row($query)); shuffle($results); $results = array_slice($results, 0, 10);
方法 1 と方法 2 のどちらが優れていますか?