为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕丝7291255 2022-10-01 10:06:34
现在有个SQL语句有两种写法:A:先查询出数据,然后对查询结果倒序排序,取得第一条记录B:直接对所有数据倒序排序,取得第一条记录问题补充:表中有一个字段display_order,当新增一条记录的时候,这个字段加1;表中另外一个字段f_id,是个外键,查询语句如下select a.display_orderfrom t_a awhere a.f_id = 1order by a.display_order desclimit 1;另一个查询:select a.display_orderfrom t_a aorder by a.display_order desclimit 1;查出f_id中display_order最大的可以,查出全表中display_order最大也可以,主要这两个查询哪个效率会高一点?
查看完整描述

3 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

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

select max(display_order) from t_a  


查看完整回答
反对 回复 2022-10-06
?
隔江千里

TA贡献1906条经验 获得超10个赞

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

查看完整回答
反对 回复 2022-10-06
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

没有区别。
A取出所有数据进行排序和B先对所有数据排序,数据库都是首先将数据取出放进tempspace里面,然后再排序,走的过程是一样的。

查看完整回答
反对 回复 2022-10-06
  • 3 回答
  • 0 关注
  • 108 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信