我正在尝试获取需要采取的调查计数,这些调查存储在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列是否已编入索引?

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。