1.概述

sql语句中exists和in有何区别? SQL语句优化有哪些方法?

sq|语句中exists和in有何区别如下:

exists是用循环( loop )的方式,由outer表的记录数决定循环的次数,对于exists影响最大,所以,外表的记录数少,适合用exists ; in先执行子查询,子查询的返回结果去重之后,再执行主查询,所以,子查询的返回结果越少,越适合用该方式。

SQL语句的优化方式如下:

  1. 尽量避免非操作符的使用。在索引列上使用NOT、<> 等非操作符,数据库管理系统是不会使用索引的,可以将查询语句转换为可以使用索引|的查询。
  2. 避免对查询的列的操作。任何对列的操作都可能导致全表扫描,这里所谓的操作包括数据库函数、计算表达式等,查询时要尽可能将操作移至等式的右边,甚至去掉函数。
  3. 避免不必要的类型转换。需要注意的是,尽量避免潜在的数据类型转换。如将字符型数据与数值型数据比较,会自动将字符进行转换,从而导致全表扫描。
  4. 增加查询的范围限制。增加查询的范围限制,避免全范围的搜索。
  5. 合理使用IN与EXISTS。例如: 有A, B两个表,它们分别使用如如下情况:
    5.1. 当只显示一一个表的数据如A,关系条件只一个如ID时,使用IN更适合,SQL语句如下:
    SELECT * FROM A WHERE i

【MySQL】sql语句中exists和in有何区别?相关推荐

  1. SQL语句中EXISTS的用法

    记录:258 在业务开展中,会遇到类似需求. 需求1:UPDATE表TEST_TB01中的记录:满足条件:这些记录不在TEST_TB02中. 需求2:UPDATE表TEST_TB01中的记录:满足条件 ...

  2. sql语句中exists用法详解

    文章目录 一.语法说明 exists: not exists: 二.常用示例说明 1.查询a表在b表中存在数据 2.查询a表在b表中不存在数据 3.查询时间最新记录 4.exists替代distinc ...

  3. 理解SQL语句中 Exists()

    理解SQL语句中 Exists() exists对于主查询而言只有一个作用:返回ture或false,而其本身查询的結果集不具任何意义 因此在子查询的Select命令语句的字段行中通常使用通用字符*或 ...

  4. 判断sql语句中exists的用法

    update demo_order a set order_name='橘子' where exists ( select 1 from demo_table b where a.order_id=b ...

  5. SQL语句中EXISTS的使用详解及示例

    EXISTS怎么用? EXISTS和NOT EXISTS子句的返回值是一个BOOL值. EXISTS内部有一个子查询语句(SELECT - FROM-), 我将其称为EXIST的内查询语句.其内查询语 ...

  6. mysql sql语句中变量_mysql-sql语句中变量的使用

    最近工作中用到mysql,发现mysql和Oracle差别挺大的,其不像Oracle中存在丰富的分析函数(开窗函数),如rank(),lag(),leaf()等,只能用变量来获取以便达到分析函数的效果 ...

  7. SQL语句中exists和in的区别

    https://www.cnblogs.com/emilyyoucan/p/7833769.html

  8. mysql中sql语句日期比较,mysql sql语句中 日期函数的使用

    select now();  获取当前时间 2018-08-30 09:44:31函数 select CURDATE(); 获取当前日期  2018-08-30orm select  CURTIME( ...

  9. mysql语句中limt_mysql sql语句中的limit用法

    mysql sql语句中的limit用法 1.select * from tablename limit 100,15 从100条记录后开始(不包括第100条记录)取出15条记录 (实际取出的是第 1 ...

最新文章

  1. ORB_SLAM2 定位模式
  2. 在双系统电脑再安装一个ubuntu18.04
  3. progress组件(进度条)
  4. Python中如何读取xml的数据
  5. 转换uptime_句型转换
  6. 计算机中乘法是什么函数,c - 分解简单的C函数。 (在64位计算机中为128位乘法) - 堆栈内存溢出...
  7. android 广播反注册后,BroadcastReceiver注册、使用及其权限
  8. vue的getaction_vuex的actions属性
  9. 搜狗输入法电脑版_年终福利 | 安卓可用的输入法皮肤 搜狗篇 / 近期日程 | iOS智能深色版。...
  10. 程序员面试金典——2.4链表分割
  11. [Linux] sed编辑器
  12. 外部表改为内部表_2、从外部导入数据创建表(ACCESS图解操作系列)
  13. AMS1117 稳压芯片原理图实物管脚图以及接法
  14. 光猫需要已经开通了 telnet 功能
  15. android人脸抠图,人脸框抠图如何实现
  16. 99乘法表,读写文件,函数
  17. 米家接入HomeKit系列二:通过群辉NAS的Docker搭建HomeAssistant
  18. windows10系统提示不允许使用你正在尝试的登录方式,请联系网络管理员了解详细信息
  19. ps去掉多余的人物#ps抠图#ps去除抠图教程学习入门基础学习
  20. finalcut内存不足_final cut pro 内存不足可以更改缓存空间吗 final cut pr

热门文章

  1. Android 12发布!小米11全系、Redmi K40 Pro宣布首批支持
  2. 马云卸任阿里巴巴集团董事:传承计划执行完毕,换个江湖见!
  3. 京东方OLED屏幕无缘iPhone 12首批供货,因测试未通过
  4. 用户一片哀嚎!三星手机系统突遇大面积崩溃:现黑屏、重启、乱码
  5. iPhone 12 Pro最新概念图:五摄相机模组也带下巴
  6. 《庆余年》全集资源遭盗播,腾讯、爱奇艺、剧方联合回应...
  7. 游族网络董事长林奇收监管函 涉嫌违规减持
  8. 小米9全面现货还降价,米粉却心情复杂?
  9. QQ春节游园会被拆开11.2亿个福袋 近一半都被00后给拆了
  10. 支付宝集五福活动参与人数超4.5亿 你分到了多少?