【问题标题】:which is faster in MYSQL?在 MYSQL 中哪个更快?
【发布时间】:2014-05-06 13:57:33
【问题描述】:

在 MYSQL 中速度更快:

DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= ENT_DATE

或

'2014-04-06 00:00:00'<= ENT_DATE 

?

在管理员中DATE_SUB(CURDATE(),INTERVAL 30 DAY) 给了我更快的结果。

【问题讨论】:

  • 什么是ENT_DATE?您如何确定哪个更快?
  • 这取决于'2014-04-06 00:00:00'是什么......数据类型是什么?如果它被识别为日期时间对象,那么它会更快,因为您没有在另一个中进行计算。

标签: mysql query-optimization


【解决方案1】:

两个 cmets 都是准确的...“ENT_DATE”的数据类型是什么,它是索引的一部分还是仅作为它自己的索引。

我要评论的更关键的一点是,您不会对日期字段进行功能转换,因为索引将无法针对它进行优化。您通过参数获得的格式为日期格式的固定字符串,或 date_sub() 计算值,它们应该相同。无论哪种方式...一个字符串到日期/时间的转换,或通过一个函数来减去日期...时间将是最小的,然后应用于索引以检索数据。

【讨论】:

    猜你喜欢
    • 2012-05-27
    • 2011-06-12
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 2011-02-02
    • 2010-10-09
    • 2013-04-04
    相关资源
    最近更新 更多