加快这个MySQL声明

前端之家收集整理的这篇文章主要介绍了加快这个MySQL声明前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试获取需要采取的调查计数,这些调查存储在SEOtc中,并且调查计数已完成,存储在SEOtcresults_v2中. SEOtc表保存了近10万条记录,而SEOtcresults_v2表只保存了一半左右.如何加快查询速度?

SELECT 
  DISTINCT SEOtcresults_v2.Clock,COUNT(SEOtc.Id) AS Surveys,COUNT(SEOtcresults_v2.Id) AS Complete 
FROM SEOtc 
JOIN SEOtcresults_v2 ON SEOtcresults_v2.Clock = SEOtc.Clock
WHERE SEOtcresults_v2.CampusID = 40
AND SEOtcresults_v2.Term = 201011
ORDER BY SEOtc.Clock

更新:

感谢所有的回复.表格结构(最低限度)如下:

SEOtc:
| Id |时钟| CampusID |期限|

SEOtcresults_v2:
| Id |时钟| CampusID |期限| Q1 | Q2 | …等等

Id是调查和调查结果的每个表中的自动递增索引

其中“时钟”是教师的ID,可以在SEOtc和SEOtcresults_v2表中多次找到,因为它们有多个类,并且每个类为多个术语完成了多个调查.我基本上试图根据给定学期中给定学校的教师的调查数量与给定相同参数的结果数量来确定响应率.这有帮助吗?

我将尽快尝试运行EXPLAIN.

最佳答案
首先要检查的是:是否将WHERE子句列索引?

那么:你需要ORDER BY,这是一种排序,而且价格昂贵.

最后,.clock列是否已编入索引?

猜你在找的MySQL相关文章