小编Tom*_*Kay的帖子

MySQL:Grouped/Ordered/Left Join查询非常慢

我有一个查询的问题,这需要太长时间(这个简单的查询超过两秒).

首先看它似乎是一个索引问题,所有连接的字段都被编入索引,但我找不到我可能需要索引的其他内容以加快这一点.只要我添加查询所需的字段,它就会变得更慢.

SELECT  `jobs`.`job_id` AS  `job_id` FROM tabledef_Jobs AS jobs
 LEFT JOIN tabledef_JobCatLink AS jobcats ON jobs.job_id = jobcats.job_id
 LEFT JOIN tabledef_Applications AS apps ON jobs.job_id = apps.job_id
 LEFT JOIN tabledef_Companies AS company ON jobs.company_id = company.company_id
GROUP BY  `jobs`.`job_id` 
ORDER BY  `jobs`.`date_posted` ASC
LIMIT 0 , 50
Run Code Online (Sandbox Code Playgroud)

表行数(〜):tabledef_Jobs(108k),tabledef_JobCatLink(109k),tabledef_Companies(100),tabledef_Applications(50k)

在这里你可以看到描述.'使用临时'似乎是减慢查询速度的原因:

在此输入图像描述

表索引截图:

在此输入图像描述

在此输入图像描述

在此输入图像描述

在此输入图像描述

任何帮助将不胜感激

用答案编辑

感谢@Steve(标记答案)的最终改进查询.最终,最终查询从~22s减少到~0.3s:

SELECT `jobs`.`job_id` AS `job_id` FROM
(
 SELECT * FROM tabledef_Jobs as jobs ORDER BY `jobs`.`date_posted` ASC LIMIT 0 , 50
) AS jobs
 LEFT JOIN tabledef_JobCatLink …
Run Code Online (Sandbox Code Playgroud)

mysql group-by sql-order-by left-join

9
推荐指数
1
解决办法
2469
查看次数

标签 统计

group-by ×1

left-join ×1

mysql ×1

sql-order-by ×1