我试图用EXPLAIN ANALYZE
诊断一个慢查询。我是新手,所以我读了http://www.postgresql.org/docs/9.3/static/using-explain.html。查询计划使用“CTE扫描”,但我不知道它与顺序扫描相比是什么,更重要的是,CTE扫描通常对查询性能意味着什么。
我试图用EXPLAIN ANALYZE
诊断一个慢查询。我是新手,所以我读了http://www.postgresql.org/docs/9.3/static/using-explain.html。查询计划使用“CTE扫描”,但我不知道它与顺序扫描相比是什么,更重要的是,CTE扫描通常对查询性能意味着什么。
1条答案
按热度按时间nvbavucw1#
“CTE扫描”是对CTE项的具体化结果的顺序扫描(如
WITH blah AS (SELECT ...)
等CTE中的“blah”等命名部分)。其主要含义是,从CTE项中选择一个小子集并丢弃其余部分可能会浪费大量工作,因为您丢弃的部分仍然必须完全计算。
有关详细信息,请参见a recent blog post I wrote on the topic。