在 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_collate