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