【问题标题】:How to make this MySQL query execute faster? [closed]如何让这个 MySQL 查询执行得更快? [关闭]
【发布时间】:2015-03-21 07:10:46
【问题描述】:
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 响应。

【问题讨论】:

  • 分页怎么样?在您的查询中 -> LIMIT 0,10 LIMIT 11,20 等等?
  • 不知道这些表中有多少行,有什么索引,以及解释计划,这可能无法回答。

标签: php mysql ajax


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多