首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >比较日期的最快方法: UNIX_TIMESTAMP、FROM_UNIXTIME或string

比较日期的最快方法: UNIX_TIMESTAMP、FROM_UNIXTIME或string
EN

Stack Overflow用户
提问于 2015-12-19 17:42:51
回答 1查看 3.2K关注 0票数 4

选择字段大于某一日期的行的最快方法是什么?

代码语言:javascript
复制
WHERE date > FROM_UNIXTIME(12345)

代码语言:javascript
复制
WHERE UNIX_TIMESTAMP(date) > 12345

代码语言:javascript
复制
WHERE date > '2011-05-01 09:00:00'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-19 17:52:20

最慢的是:

代码语言:javascript
复制
WHERE UNIX_TIMESTAMP(date) > 12345

因为每次都必须对每一行调用unix_timestamp函数,如果存在,则不会使用date列上的索引。其他的几乎是同等的:

代码语言:javascript
复制
WHERE date > FROM_UNIXTIME(12345)
WHERE date > '2011-05-01 09:00:00'

函数from_unixtime只会被调用一次,甚至字符串也只会被解析一次,不会有任何区别,但是我更喜欢最后一个,因为它更易读。

当然,不要忘记索引日期列:

代码语言:javascript
复制
alter table tablename add index idx_date (date)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34373589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档