本文主要讲解“in和或在mysql中有什么区别”,简单明了,易学易懂。请跟随边肖的思路,一起学习和学习“In和或者mysql有什么区别”!
区别:1。in通过父查询表和子自查询表进行散列连接操作查询,或者在循环父查询表后查询子查询表;2.在没有索引或主键的情况下,随着in或or后数据的增加,or的执行效率会明显下降,in的执行效率不会明显下降。
本教程的操作环境:windows10系统,MySQL版本mysql8.0.22,戴尔G3电脑。
mysql中in和or的区别是什么
做数据对比,几千万级的数据
sql语句中in和or的区别在于:操作不同,契合度不同,执行效率不同。
一、不同操作
1.In: in:in对父查询表和子自查询表进行哈希运算。
2.或者:或者是循环父查询表,每次循环都查询子查询表。
二、适合不同的5261
1.In: in:适用于子查询表数据多于父查询表数据的4102种情况。
2.Or: or适用于子查询表数据小于父查询表数据的情况。
第三,执行效率不同
1.in:没有索引,in的执行效率不会随着in后数据量的增加而大幅降低。
2.或者:没有索引,随着or后面的数据越多,or的执行效率会明显下降。
如果在in和or的列中有索引或者主键,那么or和in就没有区别,执行计划和执行时间也差不多。
如果和或中的列没有索引,性能将会大不相同。没有索引,in的效率不会随着in或or后面数据量的增加而下降太多,但是or的性能会随着记录的增加而急剧下降。
因此,在定义in和or的效率时,我们应该添加另一个条件,即我们所在的列是有索引还是主键。如果有索引或主键,性能没有差别。如果没有指标,性能差不是一点点!
感谢阅读。这就是“在和或者在mysql中有什么区别”的内容。看完这篇文章,相信你对In和或者在mysql中的区别有了更深的理解,具体用法还需要实践来验证。在这里,边肖将为您推送更多关于知识点的文章,敬请关注!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/156271.html