微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

加快这个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列是否已编入索引?

原文地址:https://www.jb51.cc/mysql/432976.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐