MYSQL SELECT查询非常慢-是否可以使用JOIN?

MYSQL SELECT查询非常慢-是否可以使用JOIN?,mysql,performance,select,Mysql,Performance,Select,这个工作查询非常慢(执行时间接近30秒),我发现JOIN子句可以提高速度。 不幸的是,我没有使用它,这是我的知识停止 请问,有没有办法提高执行速度(使用JOIN或任何其他解决方案) 表玩家有10000名玩家。 字段club表示他们所属的俱乐部。 字段category表示年龄类别(13岁以下、40岁以上等)。 我想要一份包含以下数据的所有俱乐部的列表: 俱乐部名称、俱乐部球员人数、俱乐部青年人数、俱乐部老年人人数 非常感谢你的帮助 试试这个: SELECT club, COUNT(*) AS to

这个工作查询非常慢(执行时间接近30秒),我发现JOIN子句可以提高速度。
不幸的是,我没有使用它,这是我的知识停止

请问,有没有办法提高执行速度(使用JOIN或任何其他解决方案)

玩家
有10000名玩家。
字段
club
表示他们所属的俱乐部。
字段
category
表示年龄类别(13岁以下、40岁以上等)。

我想要一份包含以下数据的所有俱乐部的列表:
俱乐部名称、俱乐部球员人数、俱乐部青年人数、俱乐部老年人人数

非常感谢你的帮助

试试这个:

SELECT club, COUNT(*) AS total,
    SUM(`category` IN ('U11', 'U13', 'U15', 'U18')) AS juniors,
    SUM(`category` IN ('O40', 'O50', 'O60', 'O70')) AS seniors
FROM players
GROUP BY club

<>请确保你在<代码>俱乐部<代码>和<代码>类别列中有索引。

当你使用<代码>组时,你不需要<代码>区别< /代码>。如果你愿意,考虑下面这个简单的两步过程:1。如果您还没有这样做,请提供适当的DDL(和/或SQLFIDLE),以便我们可以更轻松地复制问题。2.如果您还没有这样做,请提供与步骤1中提供的信息相对应的所需结果集。@草莓为什么需要第2部分?他的问题不在于结果,而在于速度。总是喜欢分组而不是区分。不同的比分组重。你两者都在使用。仅保留分组依据。确保在
俱乐部
类别
列上有索引。
SELECT club, COUNT(*) AS total,
    SUM(`category` IN ('U11', 'U13', 'U15', 'U18')) AS juniors,
    SUM(`category` IN ('O40', 'O50', 'O60', 'O70')) AS seniors
FROM players
GROUP BY club