在 MYSQL 中哪个更快?

Posted

技术标签:

【中文标题】在 MYSQL 中哪个更快?【英文标题】:which is faster in 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'是什么......数据类型是什么?如果它被识别为日期时间对象,那么它会更快,因为您没有在另一个中进行计算。 【参考方案1】:

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

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

【讨论】:

以上是关于在 MYSQL 中哪个更快?的主要内容,如果未能解决你的问题,请参考以下文章

哪个更快/更高效——大量的小 MySQL 查询或一个大的 PHP 数组?

MySQL逐字节比较,哪个更快?二进制与 bin_collat​​e

哪个更快:多行还是多列?

插入、更新或删除 MongoDB 或 SQL 哪个更快?

哪个更快: char(1) 或 tinyint(1) ?为啥?

哪个是更快的单个大查询或几个小查询?