如何让这个MySQL查询执行得更快?

时间:2015-03-21 07:10:46

标签: php mysql ajax

SELECT * FROM (`collection_series`) 
  JOIN `datadatexnumericy` ON 
    `collection_series`.`series_id` = `datadatexnumericy`.`series_id` 
  JOIN `saved_users_chart` ON `collection_series`.`collection_id` =
    `saved_users_chart`.`chart_id` 
 WHERE `saved_users_chart`.`chart_id` = '265' 
    AND `saved_users_chart`.`id` = '6' AND `datadatexnumericy`.`x` >= 
    '1973-09-30' AND `datadatexnumericy`.`x` <= '2014-06-30' AND 
    `datadatexnumericy`.`series_id` != '43538' 
    AND `datadatexnumericy`.`series_id` != '43541' 
    GROUP BY YEAR(datadatexnumericy.x)

这是我的SQL查询和此查询的结果我从AJAX响应获得此查询工作正常但我得到的响应有点慢我认为问题出在我的SQL查询中。

我想要来自collection_seriesdatadatexnumericy表的所有匹配记录,并且只有来自saved_users_chart的匹配行是否有任何可能的方法以更有效的方式优化此查询,以便我可以获得ajax反应更快。

1 个答案:

答案 0 :(得分:1)

在我看来,您的查询已经过优化。您应该在SQL服务器中测试查询结果,以查看SQL Server的响应时间,然后与实际从服务器接收响应的时间进行比较。

如果不必从每个表中提取所有列,则手动输入列名而不是*。通过这样做,从服务器收到的响应肯定会更小,因此它会更快。