您现在的位置是:群英 > 数据库 > MySQL数据库
MySQL中in和or的使用有什么不同
Admin发表于 2022-05-16 11:32:091232 次浏览
这篇文章主要给大家介绍“MySQL中in和or的使用有什么不同”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“MySQL中in和or的使用有什么不同”文章能对大家有所帮助。

区别:1、in通过父查询表和子自查询表作hash连接操作查询,or是对父查询表作loop循环后再对子查询表进行查询;2、在没有索引或者主键的情况下,随着in或or后面的数据量增多,or的执行效率会有明显下降,in的执行效率不会明显下降。

本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。

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的使用有什么不同已经有了进一步的了解,如果想要了解更多相关的内容,欢迎关注群英网络,群英网络将为大家推送更多相关知识点的文章。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: in和or
相关信息推荐
2022-05-13 16:40:18 
摘要:在mysql中,可以使用SELECT语句配合指定字段名来查询某个字段的值,语法“SELECT 字段名 FROM 表名 WHERE子句 LIMIT子句;”。
2022-05-13 16:40:41 
摘要:本篇文章给大家带来了关于mysql中的相关知识,其中主要介绍了mysql逻辑体系架构的相关问题,大致架构分为三层,分别用于连接线程处理、包含大部分mysql核心服务和包含存储引擎,希望对大家有帮助。
2022-08-11 17:40:15 
摘要:在oracle中,可以利用select语句配合“dba_synonyms”查询表的所有同义词,语法为“select * from dba_synonyms”;同义词和视图的功能类似,是一种映射关系,能够节省大量的数据库空间。
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部