以下哪项更快,还是相同? (从TIMESTAMP COLUMN获取最近的大多数记录)
SELECT UNIX_TIMESTAMP(`modified`) stamp
FROM `some_table`
HAVING stamp > 127068799
ORDER BY stamp DESC
或
SELECT UNIX_TIMESTAMP(`modified`) stamp
FROM `some_table`
WHERE UNIX_TIMESTAMP(`modified`) > 127068799
ORDER BY `modified` DESC
甚至是另一种组合?
答案 0 :(得分:1)
两者都是相同的而不是那么好,因为每一行的值都必须转换为时间戳
为什么不按原样保留日期字段,并仅转换常量值?
WHERE `modified` > FROM_UNIXTIME(127068799)
答案 1 :(得分:1)
只要modified
被编入索引,就是这个:
SELECT UNIX_TIMESTAMP(`modified`) stamp
FROM `some_table`
WHERE modified > FROM_UNIXTIME(127068799)
ORDER BY
modified DESC
是最好的解决方案,因为它是可以使用的,并允许使用modified
上的索引,这与您的两个查询都不同。