0
我有PostgreSQL的9.1查询像是否可以缓存子查询的一些变量结果?
SELECT id
FROM students
INNER JOIN exams ON /some condition
WHERE studentsid NOT IN (SUBQUERY);
,当我只运行子查询它执行了120毫秒,当我与子查询它执行,持续12秒无条件执行以前的查询,但是当我添加子查询它运行一半小时 是否可以缓存子查询的某些变量结果(结果始终是相同的ID数组),并在console/pgadmin中执行? 我发现语句,但它看起来像在psotgre不支持
首先,用左反连接或“NOT EXISTS”语句替换“NOT IN”。 PostgreSQL更有可能有效地优化它。然后查看查询的'EXPLAIN ANALYZE'输出以确定它正在做什么。如果你真的必须“缓存”子查询的结果,你可以创建一个“未记录”的表格,作为物化视图来维护。 –