gpt4 book ai didi

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

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

这个工作查询非常慢(执行将近 30 秒),我看到 JOIN 子句可以提高速度。
不幸的是我没有使用它,这就是我的知识停止的地方......

请问,有什么方法可以提高执行速度(使用 JOIN 或任何其他解决方案)?

SELECT 
DISTINCT `club`,
COUNT(`club`),
(SELECT COUNT(*) FROM `players` juniors WHERE `category` IN ('U11', 'U13', 'U15', 'U18') AND juniors.`club` = main.`club`),
(SELECT COUNT(*) FROM `players` seniors WHERE `category` IN ('O40', 'O50', 'O60', 'O70') AND seniors.`club` = main.`club`)
FROM `players` main
GROUP BY `club`

players 表有 10'000 名玩家。
字段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

确保您在 clubcategory 列上有索引。

关于MYSQL SELECT 查询非常慢 - 可以使用 JOIN 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27291570/

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