加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql中in和or的差异有哪些

发布时间:2022-06-22 03:49:10 所属栏目:MySql教程 来源:互联网
导读:mysql中in和or的区别是什么 做数据对比,千万级别数据 sql语句中 in和or的区别为:来操作不同、适合不同、执行效率不同。 一、操作不同 1、in:in是把父查询表和子自查询表作hash连接。 2、or:or是对父查询表作loop循环,每次loop循环再对子查询表进行查询
  mysql中in和or的区别是什么
 
  做数据对比,千万级别数据
 
  sql语句中 in和or的区别为:来操作不同、适合不同、执行效率不同。
 
  一、操作不同
 
  1、in:in是把父查询表和子自查询表作hash连接。
 
  2、or:or是对父查询表作loop循环,每次loop循环再对子查询表进行查询。
 
  二、适合不同5261
 
  1、in:in适合用于子查询表数据比父查询表数据多的情4102况。
 
  2、or:or适合用于子查询表数据比父查询表数据少的情况。
 
  三、执行效率不同
 
  1、in:在没有索引的情况下,随着in后面的数据量越多,in的执行效率不会有太大的下降。
 
  2、or:在没有索引的情况下,随着or后面的数据量越多,or的执行效率会有明显的下降。
 
  如果in和or所在列有索引或者主键的话,or和in没啥差别,执行计划和执行时间都几乎一样。
 
  如果in和or所在列没有 索引的话,性能差别就很大了。在没有索引的情况下,随着in或者or后面的数据量越多,in的效率不会有太大的下降,但是or会随着记录越多的话性能下降 非常厉害
 
  因此在给in和or的效率下定义的时候,应该再加上一个条件,就是所在的列是否有索引或者是否是主键。如果有索引或者主键性能没啥差别,如果没有索引,性能差别不是一点点!
 
  感谢各位的阅读,以上就是“mysql中in和or的区别有哪些”的内容了,经过本文的学习后,相信大家对mysql中in和or的区别有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读