加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

两个用于排序时间戳日期的sql

发布时间:2020-12-12 07:07:39 所属栏目:MsSql教程 来源:网络整理
导读:我有98w行数据.当我想用pub_time对数据进行排序时,我发现了一件有趣的事情. 这是SQL: select * from t_p_blog_article_info t order by t.pub_time desc 它花了19s. select * from t_p_blog_article_info t where t.pub_time to_date( '1900-01-01 01:00:00'
我有98w行数据.当我想用pub_time对数据进行排序时,我发现了一件有趣的事情.

这是SQL:

select * 
from t_p_blog_article_info t  
order by t.pub_time desc

它花了19s.

select * 
from t_p_blog_article_info t 
where t.pub_time > to_date( '1900-01-01 01:00:00','yyyy-mm-dd   hh24:mi:ss ')  
order by t.pub_time desc

它的成本为0.2秒.

我想知道,为什么?

解决方法

您可能在表上有pub_time索引.

因此,第二个查询可以使用此索引仅返回指定日期之后具有非空日期的记录,而第一个查询必须查询整个表.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读