文章

SQL 中 IN 和 OR 的区别

SQL 中 IN 和 OR 的区别为:操作不同、适合不同、执行效率不同。

一、操作不同

1、IN:IN 是把父查询表和子查询表作 hash 连接。

2、OR:OR 是对父查询表作 loop 循环,每次 loop 循环再对子查询表进行查询。

二、适合不同

1、IN:IN 适合用于子查询表数据比父查询表数据多的情况。

2、OR:OR 适合用于子查询表数据比父查询表数据少的情况。

三、执行效率不同

1、IN:在没有索引的情况下,随着 IN 后面的数据量越多,IN 的执行效率不会有太大的下降。

2、OR:在没有索引的情况下,随着 OR 后面的数据量越多,OR 的执行效率会有明显的下降。

本文由作者按照 CC BY 4.0 进行授权