PostgreSQL 控制
PostgreSQL 控制
WITH heavy AS MATERIALIZED (
SELECT user_id, COUNT(*) AS cnt
FROM logs
GROUP BY user_id
)
SELECT * FROM heavy WHERE cnt > 100;
WITH light AS NOT MATERIALIZED (
SELECT * FROM small_table WHERE flag = 1
)
SELECT * FROM light l JOIN big b ON b.k = l.k;| PostgreSQL | 12 之前总是物化;12+ 默认内联,可用 MATERIALIZED / NOT MATERIALIZED 控制 |
|---|---|
| MySQL | 无显式关键字,优化器决定合并或物化 |
| 判断 | 看 EXPLAIN 中是否出现物化/临时表节点 |