如何优化这条SQL

hackem 2008-05-06 01:47:01
如何优化SQL: select * from t where id in (1,2,3) order by s desc;

verycd.cd的面试题。
...全文
173 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jnwentao 2008-05-06
  • 打赏
  • 举报
回复
\\\|///
\\ - - //
( @ @ )
┏━━━━━━━━━━━━oOOo-(_)-oOOo━━━━━━━━━━━━┓

[Quote=引用 8 楼 syre 的回复:]
这个题目没有意义
如果id是主键
实际情况下,in和exists和or的效率是一样的。
没有必要再做任何优化。

看来verycd出题的人自己对mysql也不大了解,只是道听途说

[/Quote]
-神仙- 2008-05-06
  • 打赏
  • 举报
回复
这个题目没有意义
如果id是主键
实际情况下,in和exists和or的效率是一样的。
没有必要再做任何优化。

看来verycd出题的人自己对mysql也不大了解,只是道听途说
fxs_2008 2008-05-06
  • 打赏
  • 举报
回复
学习,好题
不过,用in有时也是很方便的,in是通用SQL,exists不知道是不是了!

ciitc2 2008-05-06
  • 打赏
  • 举报
回复
好技术库,不容错过:http://www.ciitc.com
sunfan1010 2008-05-06
  • 打赏
  • 举报
回复
~~ IN 操作符优化:
优化器把使用IN比较符的检索表达式替换为等价的使用“=”和“OR”操作符的检索表达式。
snlixing 2008-05-06
  • 打赏
  • 举报
回复
1.把“*”换成具体字段名

2.用 exists 要比用 in 效率高

3. s字段建立索引
剑心永远OK 2008-05-06
  • 打赏
  • 举报
回复
select * from t where id=1 or id=2 or id=3 order by s desc
select * from t where id<4 order by s desc
select * from t where exists(1,2,3) order by s desc
yuxinpeng 2008-05-06
  • 打赏
  • 举报
回复
学习了
swsky 2008-05-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dada20042030 的回复:]
select * from t where id=1 or id=2 or id=3 order by s desc
select * from t where id <4 order by s desc
select * from t where exists(1,2,3) order by s desc
[/Quote]

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧