gpt4 book ai didi

mysql - MySQL 查询速度慢 - 如何才能加快速度?

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

此内容已编辑 - 我已尝试加快速度,但仍然很慢 - 有人可以提供更多帮助吗?

SELECT DISTINCT d.`group_ID`,
CONCAT(u.fname, ' ', u.lname) AS uname,
u.corp_id,
c.`corp_name`,
u.`user_username`,
u.location,
(
SELECT email
FROM users
WHERE role = 'Level 4'
AND location = d.location
AND email NOT LIKE '%manager.%'
LIMIT 1
) AS trainer,
u.`email`,
GROUP_CONCAT(
DISTINCT d.title
ORDER BY d.title SEPARATOR ', '
) AS docs
FROM regulatory d
LEFT JOIN users u
ON u.user_id = d.`group_ID`
AND u.`role` = 'Level 6'
LEFT JOIN corporations c
ON c.`corp_id` = u.`corp_id`
WHERE d.`spare1` <> 'green.gif'
AND u.`officialjobtitle` <> 'none'
AND d.`date_updated` < NOW()
AND (u.`corp_id` IN (1))
GROUP BY d.`group_ID`
ORDER BY corp_id,
u.`location`,
uname ;

最佳答案

  • 您否定 regulatory 的左连接至users在哪里子句,因此使用 INNER JOIN对于这两个表
  • 使用INNER JOIN对公司来说是否可能(我只是不知道是否可行)
  • 删除 DISTINCT。您已经在执行GROUP BY如果做得正确的话,distinct 将是完全多余的(因为它不会做任何 GROUP BY 不能做的事情)
  • 我会尝试替换 trainer 的相关子查询使用已分组的“派生表”,因此您无需将行相乘
  • 使用 GROUP BY 时在MySQL中从不依赖“扩展”。始终指定生成唯一行所需的所有字段(就像在几乎所有其他 SQL 兼容的 RDBMS 中一样)

确保连接中涉及的所有字段都有索引,如果可能的话,还有 where 子句中使用的字段。

检查解释计划。

建议修改:

SELECT
d.`group_ID`
, CONCAT ( u.fname , ' ' , u.lname ) AS uname
, u.corp_id
, c.`corp_name`
, u.`user_username`
, u.location
, MAX(l4.trainer) as trainer
, u.`email`
, GROUP_CONCAT(DISTINCT d.title ORDER BY d.title SEPARATOR ', ') AS docs
FROM regulatory d
INNER JOIN users u ON d.`group_ID` = u.user_id
AND u.`role` = 'Level 6'
LEFT JOIN corporations c ON u.`corp_id` = c.`corp_id`
LEFT JOIN (
SELECT location, MAX(email) AS trainer
FROM users
WHERE ROLE = 'Level 4'
AND email NOT LIKE '%manager.%'
GROUP BY location
) l4 ON d.location = l4.location
WHERE d.`spare1` <> 'green.gif'
AND u.`officialjobtitle` <> 'none'
AND d.`date_updated` < NOW()
AND u.`corp_id` IN (1)
GROUP BY
d.`group_ID`
, u.fname
, u.lname
, u.corp_id
, c.`corp_name`
, u.`user_username`
, u.location
, u.`email`
ORDER BY
corp_id
, u.`location`
, uname
;

关于mysql - MySQL 查询速度慢 - 如何才能加快速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25718606/

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