サッカーマネージャーゲームを作成するために、Match、Teamなどのルーチンのモデルを作成し、マッチモデルの属性(ショット数、ショット数、ファウル数、コーナー数など)として多くの統計情報を追加しました。私はそれぞれのハーフフレームについて統計を提供したいと思います。したがって、私はHomeTeamFirstHalfGoalsやAwayTeamSecondHalfCornersのような属性を作成しました。私はマッチモデル内データベースクエリのオーバーホールを最小限に抑えるためにデータベース/属性番号を設計するにはどうすればよいですか?
HomeTeamTotalGoals = HomeTeamFirstHalfGoals + HomeTeamSecondHalfGoals
などの合計を計算し、ユーザによって要求されたときLeagueTableとして、一部またはすべてのこれらの統計情報を表示するように計画しています。私は、ユーザーが先週、またはTotalGoalsなどの計算可能な属性や特定のチーム/シーズン全体のマッチリストを含むすべてのフィクスチャで行われたすべてのマッチのように、異なるテーブルを見たいと思うかもしれません。
ただし、コードの処理が遅すぎます。私はそれが開発環境に起因するのかどうか、mysqlについての知識と混乱が少ないので、マッチテーブルをどのように設計すればいいのだろうと思います。
質問は(AwayTeamSecondHalfCornersのような)属性の数を最小限に抑え、依存するもの(TotalGoalsのようなもの)を計算すれば(私が見ているように、データベースクエリの概念を聞いてから、サーバーの時間とCPUがかかります) )をオンザフライで実行するか、またはサーバーのオーバーホールを最小限に抑えるためにその逆を実行しますか?
注:ExcelでA3 =(A1 + A2)と入力して新しい列を作成するのは簡単だと誰もが知っていると思います。私はそれがRubyのビューでこれほど簡単かどうか、またはmysqlテーブルでそれを行う方が効率的かどうか混乱していますか?私はプログラミングの背景がないので、簡単な情報源への案内は大歓迎です。
あなたは何が遅いの時間をする必要があります。その場を飛ばして一般的な質問をすることはできません。タイマーを追加し、問題がどこにあるかを確認します。 1つのクエリであれば、ここに投稿する必要があり、お手伝いできます。欠落しているインデックスのようなものかもしれません。クエリーの量が多い(クエリーが速いが、それらが致命的なものである)場合、各クエリーを少し早くするために、より小さな変更(アトリビュートでランダムに提案するような)を行う必要があるかもしれません。それ以上の知識がなければ、助けるのはちょっと難しいです;) – Nanne
ガイダンスをありがとう。 "SQL> SET TIMING ON"を実行すると、クエリーの実行に時間がかかることはありません。 – barerd
おそらく、まだパフォーマンス測定サービスに向かう価値はないでしょう。ベンチマークや、start_time = Time.nowのような単純なものから始めます。 #code-in-question-goes-here; end_time = Time.now; duration_in_seconds = end_time - start_time' –