• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MySQLチューニング)

MySQLチューニング:同順位を考慮したランクの取得について

このQ&Aのポイント
  • MySQLチューニングにおいて、同順位を考慮したスコアランキングを作成する方法について教えてください。レコード数が増えるにつれてSQLの実行速度が遅くなっているため、最速のSQLを知りたいです。
  • 有効なINDEXを考慮せずに、二つのテーブルを組み合わせて同順位のスコアランキングを作成したいです。1位のスコアが同点の場合、同点者は1位とし、次の人は4位として表示したいです。
  • 以下は私が組んだSQLですが、レコード数が増えるとSQLのパフォーマンスが低下しています。効率的なSQLを教えていただけませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

2つのテーブルの相関関係がいまいちわからない なぜ2つに分けているか? それぞれがどういうデータをもっていて どう表示したいのか簡単な例示はできますか?

numatahitomi
質問者

お礼

2日考えたらできちゃいました☆

numatahitomi
質問者

補足

簡易ゲームの作成をやっています。 missionidはミッションの種類で20のミッションのデータをもっています nameはプレイヤーの名前のデータを持っています。 二つのテーブルの共通のデータです。 rankingscoreinfoの skillは技スキル10種類のデータを持っています。 scoreは攻撃したときのダメージの総スコアです。 rankinginfoの kindはプレイヤーの初心者・中級・上級にわけるように作られた3つのデータを持っています。 あるmissionid(ミッション)から特定のskill(技スキル)でscore(ダメージの総スコア)が高いname(プレイヤー)のランキングをkind(初級・中級・上級)にわけてだしたいです。 元々rankingscoreinfoはscoreの集計だけをやっていて、rankinginfoは初級とかの振り分けで使っていたテーブルなのですがscoreとkindを考慮したランキングを作ろうということで二つのテーブルを利用してランキングを作ることになりました。 表示としては rank name score ----------------------- 1 hitomi 10 1 numata 10 3 rika 9 4 mika 7 5 sari 6 5 siho 6 5 miho 6 8 machi 3 という風に表示させたいです。

関連するQ&A