数据库sql中in和exists的区别
来源:互联网 发布:康明斯诊断软件下载 编辑:程序博客网 时间:2024/05/17 05:12
以下是我对这两个关键字的总结比较,供大家参考:
一、常规比较
(1)exists 可以是多行比较
select m.* from md_query m where not exists (select * from md q where q.ipadd=m.ipadd);
(2)in 只能是单行比较
select * from md where mdh in(1232,3432,5565);
二、效率比较
EXISTS与IN的使用效率的问题,通常情况下采用exists要比in效率高,
三、使用情况比较
例:大表(A)、小表(B)
(1)IN适合于外表大而内表小的情况;
select * from A where id in(select id from B);
(2)EXISTS适合于外表小而内表大的情况
select * from B where id exists (select id from A);
(3)如果A表和B表大小相当,那么查询效率是没有大差别的
(1)(2)(3)原因:
in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询;
0 0
- 数据库sql中in和exists的区别
- SQL中exists和in的区别
- SQL中exists和in的区别
- SQL中exists和in的区别
- SQL中exists和in的区别
- SQL中exists和in的区别
- SQL中in和exists的区别
- SQL中IN和EXISTS用法的区别,sql中exists,not exists的用法
- SQL中IN和EXISTS用法的区别,sql中exists,not exists的用法
- 数据库——SQL中in,not in,exists, not exists的区别
- sql中in 和 exists的用法和性能区别
- sql 中 in 和 exists 的 用法和区别
- sql 中 IN 和 EXISTS区别
- sql中exists和in区别
- SQL中exists和in的区别 (转)
- SQL中IN和EXISTS用法的区别
- sql中in和exists的区别效率问题
- SQL中IN和EXISTS的效率区别
- Struts2基础
- 父子进程ID和进程收养问题(init与upstart)
- arcgis 进行中文分类标注相关说明
- 微信扫码支付
- Android Studio 快捷键
- 数据库sql中in和exists的区别
- 杭电acm1228
- iOS高级开发——CollectionView修改cell的文本及模型重构
- 皆大欢喜的加薪
- npm install -g react-native-cli 提示npm ERR!
- Oracle 用户解锁及修改密码
- ajax成功执行回调函数后会自动刷新本页面的情况之一
- JDK5、6新特性
- jq 插件开发