最も人気のあるゲームに応じて、データベースからゲームの範囲 (たとえば、制限 72、24) を引き出します。ゲーム データを追跡するための別のテーブルと、ゲームの個々の投票を追跡するためのテーブルがあります (1 から 5 までの評価、ゲームごとにユーザーごとに 1 票)。そのゲームのすべての評価投票の平均評価が最も高いゲームは、「最も人気がある」または「より人気がある」と見なされます。5 票未満のゲームは考慮されません。テーブルは次のようになります (「games」と「votes」の 2 つのテーブル)。
games:
gameid(key)
gamename
thumburl
votes:
userid(key)
gameid(key)
rating
さて、「インデックス」と呼ばれるものがあることを理解しました。これは、基本的にテーブルを事前にクエリし、インデックスの別のテーブルを作成することでクエリを高速化できます(よくわかりません..それは私の印象です)。
また、複数のクエリを 1 つの長いクエリ (結合とネストされた select ステートメントを含むと思われます) に凝縮できる場合、mysql が最も高速に動作することも読みました。
ただし、現在インデックスを使用しておらず、最終結果を取得するために複数のクエリを作成しています。
データベースにどのような変更を加える必要がありますか (もしあれば -- インデックス テーブルの作成などを含む)? そして、私のクエリはどのように見えるべきですか?
ありがとうございました。