积木首页 - 学院 - 软件测试 - 技术百科 - 问答 - 黄页 - 手册 - 站长工具 - 社区
登录 | 注册
积木技术社区 » 其他WEB技术 » sql中,in 和 = 运算符哪个效率高
打印 楼主:牛仔太忙 发表于 2011-08-17 11:02 [回复18次/有效14个,浏览267次]

sql中,in 和 = 运算符哪个效率高

我测试了不少次,感觉他们两个都差不多。
2楼 发表于 2011-08-17 11:20
= 可以用索引
数量量大的时候就看的出
3楼 发表于 2011-08-17 11:23
是啊
4楼 发表于 2011-08-17 11:32
in 备选结果很大时,效率很低的。同时可以考虑使用exsit替代in
5楼 发表于 2011-08-17 11:42
帮顶啦!
=的效率高
6楼 发表于 2011-08-17 11:52
同上各个楼层的
7楼 发表于 2011-08-17 11:54
==的效率高
8楼 发表于 2011-08-17 11:57
严重同意。。。
9楼 发表于 2011-08-17 11:58
=的速度快。。。。
10楼 发表于 2011-08-17 12:40
使用exists
不建议使用in 和not in
in会使用表扫描
11楼 发表于 2011-08-17 12:55
同意
12楼 发表于 2011-08-17 13:07
绝对同意
13楼 发表于 2011-08-17 13:18
对,=的速度快,因为'='是等号右边的值直接赋给等号前面的变量,,
而in 则是在in后面的集合中寻找,有可能集合中会是多个,
结果可见
回答完毕
2009-11-17 09:28:00
14楼 发表于 2011-08-17 13:38
弄上几千万数据量试试看?~~~~
看情况吧。
我觉得=比in快。。。
in 还没有exists 效率高呢~~~
15楼 发表于 2011-08-17 13:42
个人觉得in和=效果差不多
select * from B where cc in (select cc from A) ;
假如:select cc from A就只有2个值1,2
oracle会把上面的语句变成
select * from B where cc=1 or cc=2;
如果B表上cc列有索引,2条语句都能使用索引
效率上select * from B where cc=1 or cc=2;略高些,也就高在将select * from B where cc in (select cc from A) ;的过程转为select * from B where cc=1 or cc=2;
标题:
内容:

PHP: PHP技巧 - PHP基础 - PHP实例 - PHP错误代码 - 正则表达式 - 热门脚本语言: DOS命令 - vbs - CSS/HTML - python - perl - ruby - shell编程 - Powershell

JS: node.js - JS基础 - extjs - jQuery - JavaScript技巧

网址导航成语大全积木 TinyMCE 服务邮箱: Gimoohr(#)gmail.com
Copyright © 2008 Gimoo.Net  京ICP备05050695号