私はクイズをしていますが、私はそれについて多くの選手を期待しています。クイズには固定数の質問があります。クイズシステムは、個々の質問をMySqlデータベースから1つずつ取り出して、ユーザーに表示することができます。あるいは、ログインしたときにすべての質問を取得して1つずつ表示することもできます。 2番目の方法は、SQLクエリの数が多いためにサーバーの負荷を大幅に軽減できますか?ここでは、同時にゲームをプレイしている500〜600人のユーザーについて話しています。どちらが良いですか:いくつかのSQLクエリまたは1つのSQLデータに大量のデータがありますか?
答えて
確かに知る唯一の方法は、両方の方法をベンチマークすることです。
私は最近、多数の小さなSQLクエリを少数の大きなクエリで置き換えることによって、パフォーマンスに重要なコードのスループットを10倍に向上させました。
よく索引付けされたデータベースは、単一のクエリでは全く問題がありません。これは私が好むものです。ボーナス:これらの小さなクエリはサーバーのクエリキャッシュに残っているため、再度要求された場合、より迅速に配信されます。
数値によって異なります。あなたはすべての質問を表示していますか、1000のうち5つをランダムに選んでいますか?
質問の数が少ない場合は、1回のクエリでそれらを取得する方が良いでしょう。
質問の数が多い場合は、1回のクエリでそれらをフェッチすると大量のメモリが使用される可能性があるため、1つずつフェッチする方が効果的です。
その15のクエリといいえ、ランダムにフェッチされません。 – aakashbhowmick
それから間違いなく、単一のクエリでそれらを取得する方が良いでしょう。通常、データベースは各クエリを分析し、実行計画を準備する必要があります。したがって、データベースでは15回ではなく1回実行する方が優れています。 – Arsen7
質問の数が少ない場合は、いずれにしても少し違いがあります。また、質問の数が多い場合は、前後のネットワーク待ち時間のほとんどを避けるため、1回のクエリでフェッチする方が効率的です。
15を除いてを選択してください。各ユーザーの回答は個別ののクエリです。 DBサーバーの最大の利点は2つのバッチのクエリです:各ユーザーに対して1つの選択と1つの挿入。
理論上、500-600インサート/秒を受け取ることがあります。実際には挿入物が少なくなります。
とにかく、挿入ロックのオーバーヘッドがあるため、多数のクエリを避ける必要があります。
- 1. 大量のデータはいくつのデータにすることができますか?次元数はどれくらい多くありますか?
- 2. 1つのテーブルに大量のデータがあり、他のテーブルに大量のデータがある場合にSQL Serverで2つのテーブルに結合する
- 3. 1つのSQLクエリで、1つのテーブルから他のSQLクエリにデータを移動する、plなしSQL
- 4. Cassandraクラスタの1ノードあたりのデータ量はどれくらいですか?
- 5. SQLにはいくつの結合がありますか?
- 6. 大量のデータを楽しむいくつかの方法はありますか? (Twitter、del.icio.usなどのAPI)
- 7. 何が良いですか?いくつかの小規模なデータベースまたは1つ大きいです
- 8. (個々のSQLクエリ)vs(そのデータを介した単一のSQLクエリとループ)どれが良いですか?
- 9. どちらが良いですか?アプリケーションにクラスファイルを持つか、Webサービスからデータを取得しますか?
- 10. 1つのSQLクエリで複数のカウントがあります
- 11. 1つのバッグ(容量:2V)または2つのバッグ(各容量:V)の0/1古典的なkanpsackでは、どちらが良いでしょうか?
- 12. 1つのRTTに複数のSQLコマンドがありますか?
- 13. は、データが、私はちょうど1つのクエリでデータベースからいくつかの事取得しようとしています
- 14. 配列にどれくらいのデータがありますか?
- 15. SQL - 1つのテーブルで多くのトランザクションを処理するより良い方法はありますか?
- 16. 1 SQLクエリで4つのテーブルからデータを取得するには?
- 17. SQLテーブル - どちらか/またはデータのパターン
- 18. SQLは、CONCAT、いくつかの私がデータを持つテーブルを持っている一つの大きなテーブル
- 19. SQLクエリでOutOfMemoryExceptionが発生し、SQL Serverから大量のデータが取得される
- 20. 1秒あたりのSQL Serverの処理数はいくつですか?
- 21. 何が良いですか?クエリ(sql)またはhash_equals
- 22. SQLアドレスのデータが乱雑ですが、クエリでそのデータをクリーンアップする方法はありますか?
- 23. 大量のデータがコードネーム1である
- 24. SQLクエリは1つのクエリで実行できますか?
- 25. どちらが良いですかLinkedBlockingQueue無制限またはLinkedBlockingQueue with容量
- 26. SQLデータが1つのテーブルにマージ
- 27. このSQLクエリを書く良い方法はありますか?
- 28. 行から列にデータを表示するSQLクエリがあります
- 29. あるSQLクエリから他のSQLクエリへのデータを使用
- 30. データベースに複数のログファイルがある場合、どちらが1つのSQL Serverを選択しますか?
私はPHPを使用しているので、SESSION変数に質問を格納することを考えています。あなたが話しているクエリキャッシュは何ですか?私は申し訳ありませんが、私は独学のプログラマーであり、技術専門用語は無知です。 – aakashbhowmick
申し訳ありません。私が参照していた「クエリキャッシュ」は、MySQLサーバの内部メカニズムです。たくさん質問される質問(クエリ)はキャッシュされます。 –