如何使此MySQL查询执行得更快


How to make this MySQL query execute faster?

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 响应。

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

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