gpt4 book ai didi

performance - 简单的 MySQL 查询需要很长时间

转载 作者:行者123 更新时间:2023-11-29 06:24:27 24 4
gpt4 key购买 nike

我们正在为一堆游戏运行一个统计站点,但是在日志超过 100 兆之后,速度开始变慢,因此我们需要优化查询。

但是,我们发现我们认为是一个简单的查询,大约需要 1.5 秒:

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;

这会生成其中一支团队的结果列表。

表击杀数和玩家数分别由 36000 行和 4000 行组成。

为什么该查询花费这么长时间以及如何优化?我们是否应该考虑加入?

最诚挚的问候,拉卡

最佳答案

一般来说,MySQL 执行连接的速度比子选择快。要了解如何优化查询,我建议阅读 EXPLAIN语法。

首先,确保您的kills 表有一个关于killer 和gid 的复合索引,然后尝试以下连接:

SELECT p.handle, COUNT(*) AS n_killsFROM players p     JOIN kills k     ON p.handle = k.killer        AND p.gid = k.gidWHERE p.gid = 3245     AND p.team = "axis"    AND k.k_team != k.c_teamGROUP BY p.handleORDER BY n_kills DESC LIMIT 0,10

查看这两个表的 CREATE TABLE 语句将有助于确定索引是否存在任何问题。

关于performance - 简单的 MySQL 查询需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/763815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com