not exists和not in 的区别
时间: 2023-11-18 12:15:09 浏览: 95
not exists和not in的区别在于它们的实现方式和对索引的使用情况。
not exists是通过对外表进行循环遍历,然后对内表进行查询,每次循环都要进行查询操作。这意味着不管内表和外表的大小如何,not exists都会进行循环查询。而且,not exists可以对主查询和子查询都使用索引。
not in则是通过对外表和内表进行哈希连接,将两个表进行比较。当使用not in时,只有主查询可以使用索引,而子查询则不会使用任何索引。因此,not in在处理大表时可能会导致查询效率较低。
综上所述,not exists和not in的主要区别在于查询方式和索引的使用情况。not exists会进行循环查询,并且可以对主查询和子查询都使用索引,而not in则通过哈希连接比较两个表,只能对主查询使用索引。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Sql中in、not in、exists和not exists的区别详细结果](https://blog.csdn.net/m0_57179014/article/details/120332265)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文