首页 新闻 赞助 找找看

pgsql 数据库 sql优化

0
[已解决问题] 解决于 2023-11-30 19:09
SELECT * from  a where is_delete and
(exists   SELECT 1   FROM  sub_a  limit 1 
or 
exists  SELECT 1   FROM  sub_b  limit 1)

这个sql 去掉一个exists 就不慢, 但是 or 一下就很慢
有没有大哥有改进办法

sql
永远跟党走i的主页 永远跟党走i | 小虾三级 | 园豆:1517
提问于:2023-11-29 11:19
< >
分享
最佳答案
0

UNION 语句 试试?
https://www.runoob.com/sql/sql-union.html

再加个 去重。

奖励园豆:5
快乐的凡人721 | 老鸟四级 |园豆:3882 | 2023-11-30 13:29

是的,后面就是 这样的

AND (exists
(SELECT DISTINCT 1  FROM 
( SELECT * FROM (   SELECT a."id" "Id"   FROM "bms"."fin_order_profit" a  ) a 
UNION ALL   
SELECT  * FROM (  SELECT a."id" "Id"   FROM "bms"."fin_order_profit" a   WHERE (filter1."Id" = a."id")  limit 1)
)
 
 
永远跟党走i | 园豆:1517 (小虾三级) | 2023-11-30 19:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册