sql in 执行效率低 如何优化

2025-03-24 03:59:49
推荐回答(5个)
回答1:

你这样不好,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'

这样效率高很多。

回答2:

SELECT sum(*)
FROM pas_guiyyw
WHERE exists (SELECT 1
FROM subTable
WHERE subTable.rule='ruleContext'
AND pas_guiyyw.id= subTable.id )

回答3:

1. exist
2. 将子查询改为联合查询

回答4:

用EXISTS替代IN
用NOT EXISTS替代NOT IN
用表连接替换EXISTS
sql语句用大写的

回答5:

用 exists 替代。