Cloud SQL&amp ;;的重要查询时间差异本地服务器

时间:2014-06-17 16:11:40

标签: mysql google-cloud-sql

我正在对Cloud SQL实例(类型D1 mysql 5.6.16)执行以下查询,其中需要11秒才能完成。在我的共享主机上运行在mysql(v5.5.35)上的相同索引和内容的完全相同的数据库(在规范方面没有什么特别之处),查询只需0.068秒。

查询:

SELECT casenotes.caseworkerID,COUNT(*)
FROM emails LEFT JOIN (casenotes) ON  (emails.ID=casenotes.subtypeID) 
WHERE emails.type='sent' AND casenotes.type='email' AND 
      emails.datetime > '2014-05-01' 
GROUP BY casenotes.caseworkerID;

这是Cloud SQL服务器上的解释结果

id  select_type table   type    possible_keys   key key_len ref rows    Extra
1   SIMPLE  casenotes   ref type,subtypeID,caseworkerID type    22  const   6447    Using index condition; Using where; Using temporary; Using filesort
1   SIMPLE  emails  eq_ref  PRIMARY,ID,type,datetime    PRIMARY 8   casework_test.casenotes.subtypeID   1   Using where

这是我共享主机上的解释结果

id  select_type table   type    possible_keys   key key_len ref rows    Extra
1 SIMPLE casenotes ref type,subtypeID type 22 const 6451 Using where; Using temporary; Using filesort 1 SIMPLE emails eq_ref PRIMARY,type,datetime PRIMARY 8 zahawizs_caseworker.casenotes.subtypeID 1 Using where

有没有人建议我如何调整我的select语句或Cloud SQL服务器实例以更快地返回它。

1 个答案:

答案 0 :(得分:1)

对于其他遇到此问题的人,我发现有问题的表在MyISAM中,与INnodb联系已大大加快搜索速度。显然,云SQL缓存更适合InnoDB表。

这不是一个100%的解决方案,但是在大型数据集上,查询仍然需要将近3秒才能完成,因此任何其他建议都将非常受欢迎。