首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP SQL查询非常慢

PHP SQL查询非常慢
EN

Stack Overflow用户
提问于 2014-03-09 08:40:21
回答 1查看 101关注 0票数 1

这一行使查询运行得非常慢。如果我删除“+ K.OFFSET/1440”部分,它可以正常运行。有没有更快的方法?$From_Date = "02/04/2014“和$To_Date = "05/04/2014”。

代码语言:javascript
复制
AND (CT.START_GMT + K.OFFSET/1440 >= TO_DATE('$From_Date', 'mm/dd/yyyy')) AND (CT.START_GMT + K.OFFSET/1440 <= TO_DATE('$To_Date', 'mm/dd/yyyy'))";
EN

回答 1

Stack Overflow用户

发布于 2014-03-09 08:46:24

对列添加、减去或应用函数后,请立即将其应用于正在中使用的列:

  • WHERE子句中的字段
  • 连接

ON内的字段

你失去了它上面的任何索引的好处。

START_GMT列可能是不再应用的索引的一部分。

您可以比较添加加法前后查询的索引使用情况,并查看索引使用情况是否发生了变化。

代码语言:javascript
复制
 explain <your fast query>;
 explain <your slow query>;

如果关键问题就是问题,那么您很可能会看到'possible_keys‘和'Extra’列在两个explain查询之间变化。

如果你将加法移到比较的另一边,你将会得到索引的好处:

代码语言:javascript
复制
  (CT.START_GMT  >= TO_DATE('$From_Date', 'mm/dd/yyyy') - K.OFFSET/1440) AND ...

对where子句中的所有比较执行此操作。祝好运!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22277004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档