2016-04-26 10 views
0

私は、私がテーブルを持っているところで、私はメインサイト(現在は約80人)に無作為に表示されている質問を持っています。私はデータベースからすべてのIDを読んだ後、ランダムに1つを選択して次の問合せを実行して、残りのすべてのIDを取得します。私はこれをそのまま残すか、.jsonファイルにすべてのIDを格納し、質問を追加するたびに更新するほうがいいと思うのです。ベッカーって何?手伝ってくれてありがとう。PHP、jsonのmysql IDのインデックス登録。その価値はありますか?

+0

使用するデータベースによって異なります。フィールドが索引付けされている場合は、すでに十分に速いでしょう。 jsonのアプローチは、顧客数が多い場合には意味があります。これにより、ロード時間が短縮されます。 – paskl

+0

@paskl _これはローディング時間を減らすでしょうか?データベースは、情報を格納するテキストファイルより常に優れています。 – RiggsFolly

+0

@RiggsFolly JSONファイルを一度読んでランダムにピッキングするほうがおそらく高速ですが、本当に重要なのは問題です。 1msのデータベース呼び出しは、負荷が絶対に壊れていて、執拗でない限り問題にはなりません。 – tadman

答えて

2

あなたがテーブルからランダムなレコードの中だけで興味を持っている場合は、ちょうどこのようにそれを実行します。1つのクエリで

SELECT * FROM your_table 
ORDER BY RAND() 
LIMIT 1; 

すべて、あなたは最初のIDのリストを取得する必要はありません。

そして、2つの別々のデータソースを維持することは、ほとんどの場合、悪い考えです。

+2

これは行く方法です。しかし、テーブルが大きくなると、最初の行を選択する前にすべての行を並べるので、テーブルが遅くなることがあります。その場合、アプリからIDを選択する方が良いかもしれません。 – gontrollez

+0

大きなテーブルをお持ちの場合、[私のブログ](http://mysql.rjweb.org/doc.php/random)にはより高速なアルゴリズムがあります。 –

関連する問題