请问:这两种方式,哪个的效率会更高一些?为什么?

现在有个SQL语句有两种写法:
A:先查询出数据,然后对查询结果倒序排序,取得第一条记录
B:直接对所有数据倒序排序,取得第一条记录


问题补充:表中有一个字段display_order,当新增一条记录的时候,这个字段加1;
表中另外一个字段f_id,是个外键,查询语句如下
select a.display_order
from t_a a
where a.f_id = 1
order by a.display_order desc
limit 1;

另一个查询:
select a.display_order
from t_a a
order by a.display_order desc
limit 1;

查出f_id中display_order最大的可以,查出全表中display_order最大也可以,主要这两个查询哪个效率会高一点?


慕丝7291255
浏览 116回答 3
3回答

尚方宝剑之说

显然只要如下这样就好了,而且不管在display_order列建没建索引,都是最快的..select max(display_order) from t_a  

隔江千里

当然是B查询好因为按照你的需求,A查询中的where子句是不必要的

qq_花开花谢_0

没有区别。A取出所有数据进行排序和B先对所有数据排序,数据库都是首先将数据取出放进tempspace里面,然后再排序,走的过程是一样的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server