具有时间戳条件的性能

时间:2010-04-08 11:04:54

标签: mysql performance

以下哪项更快,还是相同? (从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

甚至是另一种组合?

2 个答案:

答案 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上的索引,这与您的两个查询都不同。