mySQL中in查询与exists查询的区别小结

作者:daisy 时间:2024-01-20 22:26:00 

一、关于exists查询


explain select * from vendor where EXISTS(select * from area where area_code = vendor_prov_code ) limit 10

以上是一个典型的exists查询的sql语句。

它的作用方式是这样的:每次从vendor表中查询出一条数据,然后将这条数据中的vendor_prov_code值传递到exists查询中进行执行,也就是进行子查询的执行。

如果子查询查到的数据就返回布尔值true,如果没有就返回布尔值false。返回布尔值true则将该条数据保存下来,否则就舍弃掉。也就是说exists查询,是查询出一条数据就执行一次子查询。

需要注意的是:exists …. 只能返回布尔值true或者false,其他的字段并不会进行返回的。

二、关于in查询


explain select * from vendor where vendor_prov_code in (select area_code from area ) limit 10

上面就是一条关于in查询的sql语句。

它的作用方式是这样的:先执行子查询,也就是in()所包含的语句。子查询查询出数据以后,将前面的查询分为n次普通查询(n表示在子查询中返回的数据行数)。也就是例如以下的执行步骤:


select * from doub_vendor where vendor_prov_code = 子查询结果1
.......
.......
select * from doub_vendor where vendor_prov_code = 子查询结果n

网上有人在争exists查询与in查询的效率问题,这里得说以下,不同的mysql版本,不同的业务,不同的数据,执行效率是不一定的,这里涉及到了mysql优化器对sql语句的优化,子查询的数据量问题等等。

网上还有人说mysql5.6版本对in查询做了很好的优化,所以效率问题要看具体的场景,要看真实测试的数据来进行优化!

总结

标签:mysql,in,exists
0
投稿

猜你喜欢

  • 在Mysql上创建数据表实例代码

    2024-01-22 17:40:39
  • python使用timeit时间模块

    2023-03-05 16:27:37
  • 详解Python中的装饰器、闭包和functools的教程

    2023-12-30 13:43:03
  • 详细分析Python垃圾回收机制

    2021-04-18 02:43:43
  • 用python实现前向分词最大匹配算法的示例代码

    2023-12-03 00:18:46
  • mysql存储过程之游标(DECLARE)原理与用法详解

    2024-01-25 14:23:50
  • python去掉 unicode 字符串前面的u方法

    2021-03-02 20:53:33
  • Python 面向对象编程详解

    2023-06-25 05:24:23
  • golang 输出重定向:fmt Log,子进程Log,第三方库logrus的详解

    2024-04-27 15:40:14
  • MySQL 基本概念

    2011-09-10 16:22:34
  • 10分钟教你用Python实现微信自动回复功能

    2021-03-14 04:04:47
  • django 将自带的数据库sqlite3改成mysql实例

    2024-01-19 14:52:21
  • Go 加密解密算法小结

    2024-04-26 17:29:00
  • PHP实现获取两个以逗号分割的字符串的并集

    2023-06-01 03:24:53
  • Oracle19c 创建表空间遇到的坑

    2024-01-15 14:18:24
  • 用asp实现读取文件的最后一行的代码

    2011-03-08 10:55:00
  • Python Tornado框架轻松写一个Web应用的全过程

    2022-05-10 10:38:36
  • Javascript脚本实现静态网页加密实例代码

    2024-04-19 11:04:30
  • Vue 2.0入门基础知识之内部指令详解

    2024-05-10 14:17:19
  • Django+Uwsgi+Nginx如何实现生产环境部署

    2023-02-08 00:48:48
  • asp之家 网络编程 m.aspxhome.com