当前位置:首页 » 编程语言 » sqlin效率低

sqlin效率低

发布时间: 2025-03-09 16:47:59

sql 语句中in ,not in

如果系统不自动优化,并且IN的结果很多,那么有可能IN和NOT IN的效率低些。

所有的IN都可以转换为EXISTS,同样NOT IN可以转换为NOT EXISTS,下面说明IN转换为EXISTS的方法,NOT的类似:

IN的语句:
SELECT * FROM A WHERE F IN (SELECT F FROM B)

可以转换为如下的EXISTS语句:
SELECT * FROM A WHERE EXISTS
(SELECT * FROM B WHERE A.F=B.F)

上面转换的说明:两个WHETE都可能有更多都条件,那么直接AND在相应的地方即可。另外表A和B的关联字段可能名字表同,也司没关系的。

⑵ sql in 执行效率低 如何优化

你这样不好,in,exists都是子查询
你应该考虑连接查询,这样速度快很多。

以楼上兄弟为例子:

SELECT sum(*)
FROM pas_guiyyw
WHERE exists (SELECT 1
FROM subTable

WHERE subTable.rule='ruleContext'
AND pas_guiyyw.id= subTable.id )

应该修改为:
SELECT sum(*)
FROM pas_guiyyw a,
subTable b WHERE
a.id= b.id
and b.rule='ruleContext'

这样效率高很多。

⑶ SQL优化——IN和EXISTS谁的效率更高

在SQL编程中,IN和EXISTS是常被使用的子查询方式,它们的功能相似但效率存在差异。通过对比不同场景下的测试,可以发现使用哪一种更为高效。

在测试1中,我们使用了子查询`select flag from B where B_id<100`,结果集为99条。在这个场景下,IN的效率高于EXISTS。IN执行计划中,首先执行A表的查询,并利用索引优化,然后执行B表子查询,同样使用索引。而EXISTS的执行计划则先取A表所有记录,然后逐行关联B表子查询,使用Block Nested Loop优化。

测试2中,子查询`select flag from B where B_id>100`,结果集为299899条。这次EXISTS的效率比IN高。两者在索引使用上与第一次测试一致,但当子查询结果集较大而外部表较小时,EXISTS的Block Nested Loop开始发挥优势,查询效率优于IN。

综上所述,并不能断言IN或EXISTS的效率更高,具体情况需要具体分析。IN的执行原理是先查询内表得到结果集,再与外表匹配,不管子查询是否有数据,都会进行全部匹配,这在内表数据量较大时效率较低。而EXISTS则是先对外表进行循环查询,只在匹配到数据时返回结果,适用于子查询数据量较大而外表数据量较小时。

结论是,子查询结果集较大时使用EXISTS,而结果集较小时使用IN可能更有效。对于更详细的信息和深入理解,可以参考墨天轮原文链接。

⑷ 关于sql中in 和 exists 的效率问题,in真的效率低吗

关于sql中in 和 exists 的效率问题,in真的效率低吗
in和exists
in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。

如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:
例如:表A(小表),表B(大表)1:select * from A where cc in (select cc from B)
效率低,用到了A表上cc列的索引;select * from A where exists(select cc from B where cc=A.cc)
效率高,用到了B表上cc列的索引。

热点内容
湖南学安卓哪里好 发布:2025-03-10 02:40:50 浏览:648
服务器rmc是什么版本 发布:2025-03-10 02:31:08 浏览:473
外部存储器的空间不足 发布:2025-03-10 02:15:43 浏览:460
服务器怎么练 发布:2025-03-10 02:14:00 浏览:569
ipad忘了id账号密码怎么办 发布:2025-03-10 02:07:16 浏览:471
电脑和服务器有啥区别啊 发布:2025-03-10 01:59:54 浏览:990
股票应该怎么板块配置 发布:2025-03-10 01:59:08 浏览:223
天正建筑编译菜单文件一直在加载 发布:2025-03-10 01:47:37 浏览:567
长安cx70自动挡有哪些配置 发布:2025-03-10 01:35:54 浏览:991
百洒存储 发布:2025-03-10 01:35:43 浏览:947