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

前端之家收集整理的这篇文章主要介绍了两个用于排序时间戳日期的sql前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有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索引.

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

猜你在找的MsSQL相关文章