date_add或date_sub的速度差异?

时间:2012-11-01 11:40:29

标签: php mysql

给出以下两个mysql查询:

SELECT * FROM table1 WHERE DATE_ADD(datetimecolumn,INTERVAL 24 HOUR)>NOW()

SELECT * FROM table1 WHERE DATE_SUB(NOW(),INTERVAL 24 HOUR)>datetimecolumn

哪个查询会更快?

2 个答案:

答案 0 :(得分:1)

下面会很快。

以下内容可以应用datetimecolumn的索引,而上述索引则不能。

DATE_SUB(NOW(),INTERVAL 24 HOUR)只需要计算一次,而DATE_ADD(datetimecolumn,INTERVAL 24 HOUR)需要对每条记录进行计算。

答案 1 :(得分:1)

我想你想知道的事情:

第二个应该明显更快,因为datetimecolumn可以直接用于索引操作。如果没有索引,我会说差异应该可以忽略不计(时间操作和函数调用比从磁盘中检索数据要快得多)。

你真正问的是什么:

这两个查询不相同。

DATE_ADD(datetimecolumn,INTERVAL 24 HOUR)>NOW()

检索NEW 24小时以上的记录。

第二个

DATE_SUB(NOW(),INTERVAL 24 HOUR)>datetimecolumn

从现在起24小时内检索OLDER记录。

那么在这种情况下,哪个查询更快,答案就是它取决于有多少记录......