我有一些复杂的查询会产生相同的结果。唯一的区别是执行顺序。例如,查询在连接之前首先执行选择,而另一个查询首先执行连接,然后执行选择。但是,当我阅读解释时(在解释选项卡上,使用PgAdmin III),两个查询都具有相同的图表。 为什么呢?
答案 0 :(得分:0)
我不是专家用所有正确的术语解释这一点,但实质上预处理试图找到执行语句的最有效方法。它通过将它们分解为更简单的子语句来实现这一点 - 仅仅因为您以一种方式编写它并不意味着它与预处理执行计划的顺序相同。有点像算术的优先级(括号,乘法,除法等)。
某些操作会影响执行的语句顺序,使您能够"调整"您的查询,以提高他们的效率。 http://www.postgresql.org/docs/current/interactive/performance-tips.html