给出以下两个 mysql 查询:
SELECT * FROM table1 WHERE DATE_ADD(datetimecolumn,INTERVAL 24 HOUR)>NOW()
还有
SELECT * FROM table1 WHERE DATE_SUB(NOW(),INTERVAL 24 HOUR)>datetimecolumn
哪个查询会更快?
最佳答案
我认为您想知道:
第二个应该明显更快,因为datetimecolumn
可以直接在索引操作中使用。如果没有索引,我认为差异应该可以忽略不计(时间操作和函数调用比从磁盘检索数据快得多)。
你真正问的是什么:
这两个查询不等价(它们不返回相同的记录)。
DATE_ADD(datetimecolumn,INTERVAL 24 HOUR)>NOW()
检索从现在起 24 小时内较新的记录(因此,是自昨天以来插入的所有记录)。
第二个
DATE_SUB(NOW(),INTERVAL 24 HOUR)>datetimecolumn
检索从现在起超过 24 小时(过去两天或更长时间)的记录。
因此,在这种情况下,哪个查询更快,答案是这取决于有多少条记录......
关于php - date_add 或 date_sub 速度差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13176261/