-1

重複の可能性:
mysql で大きなテーブルからランダムな行をすばやく選択
する MySQL でランダムな行を選択する

現在、mysql データベースからランダムなビジネス レコードを取得し、そのレコードをモジュール内の「注目のビジネス」として表示するモジュールを作成しています。それはすべてうまくいきますが、あまりにも速くないと聞いているので、これが最善の方法である場合、100%ではありませんか?. 現在、それはかなり急速であり、取得できるビジネスの最大数は約 100 ~ 200 であると考えるべきです。したがって、以下の方法を使用しても問題ありませんか?それとも、その量のレコードで処理が大幅に遅くなりますか?.

どうもありがとう :-)

<?php
$result = mysql_query("SELECT * FROM `zgjzb_chronoforms_data_submitbusiness` ORDER BY     RAND() LIMIT 0,4;");
$row = mysql_fetch_array($result);
echo $row['businessname'];
?>
4

2 に答える 2

2

この質問を参照してください: MySQL select 10 random rows from 600K rows fast

あなたが望むことを行うための「より良い」方法があります。

100 ~ 200 の企業では、これはおそらく大きな違いはありません。数千でも。現在のクエリが「遅い」と見なされる理由は、MySQL がクエリを処理するためにメモリ内に一時テーブルを作成しているためです。

したがって、今のところ (まあ、しばらくの間) 持っているもので問題ないはずです。

PSmysql_*機能は現在古くなっています。mysqliまたはPDOを使用する必要があります。違いに関するPHPマニュアルは次のとおりです。

于 2012-11-09T22:44:34.143 に答える
0

それだけの数のレコードでまったく問題ありません。数千人いても大丈夫です。Sql クエリは、ほとんどの場合、その速度に感銘を受けます。レコードが非常に少ないクエリの場合は、問題ありません。

于 2012-11-09T22:40:14.177 に答える