给出以下两个mysql查询:
SELECT * FROM table1 WHERE DATE_ADD(datetimecolumn,INTERVAL 24 HOUR)>NOW()
和
SELECT * FROM table1 WHERE DATE_SUB(NOW(),INTERVAL 24 HOUR)>datetimecolumn
哪个查询会更快?
答案 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记录。
那么在这种情况下,哪个查询更快,答案就是它取决于有多少记录......