关于sql的问题,sql语句查出的结果某字段使用子查询会影响效率吗?

2024-11-05 19:25:46
推荐回答(2个)
回答1:

不一定。因为dbms可能会进行查询转换。也就是你这么写了,但是数据库可能给你等价重写。所以是否影响效率,得看执行计划是否一样。但是公司这么要求有道理,因为不是所有的子查询SQL都可以重写。

回答2:

转:

子查询为确保消除重复值,必须为外部查询的每个结果都处理嵌套查询。在这种情况下可以考虑用联接查询来取代。

如果要用子查询,那就用EXISTS替代IN、用NOT EXISTS替代NOT IN。因为EXISTS引入的子查询只是测试是否存在符合子查询中指定条件的行,效率较高。无论在哪种情况下,NOT IN都是最低效的。因为它对子查询中的表执行了一个全表遍历。