你这样不好,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'
这样效率高很多。
SELECT sum(*)
FROM pas_guiyyw
WHERE exists (SELECT 1
FROM subTable
WHERE subTable.rule='ruleContext'
AND pas_guiyyw.id= subTable.id )
1. exist
2. 将子查询改为联合查询
用EXISTS替代IN
用NOT EXISTS替代NOT IN
用表连接替换EXISTS
sql语句用大写的
用 exists 替代。