ゲームのために統計サイトを実行していますが、ログが100メガ以上になった後、状況が減速し始めているので、クエリを最適化する必要があります。シンプルなMySQLクエリには年齢がかかります
SELECT handle,
(
SELECT COUNT(*)
FROM kills
WHERE killer=p.handle
AND k_team != c_team
AND gid=p.gid
) AS kills
FROM players as p
WHERE gid="3245"
AND team="axis"
ORDER BY kills DESC LIMIT 0, 10;
これは、チームのいずれかの結果リストを生成します。
しかし、我々は、約1.5秒を要し、私たちが考えたことは単純なクエリだったことが判明しました。
テーブルキルとプレイヤーは、それぞれ36000と4000行で構成されています。
なぜこのクエリは時間がかかり、どのように最適化できますか?おそらくJOINを調べるべきでしょうか?
敬具、 ラカ
テーブル 'キル'には、gid以外のプレーヤーにはFKがありますか? –