在多个 Join 的情况下,如何知道哪个 JOIN 花费更多时间?

How to know which JOIN takes more time in case of multiple Joins?

考虑以下查询:

SELECT *  
FROM Table1
INNER JOIN Table2 ON Condition1
INNER JOIN Table3 ON Condition2
INNER JOIN Table4 ON Condition3
INNER JOIN Table5 ON Condition4;

有没有办法知道执行此查询时哪个连接花费更多时间?

您可以使用 EXPLAIN (ANALYZE) /* your query */ 查找此类详细信息。看一下actual time,但是考虑到结果是累加的,也就是说,你必须从下层节点减去时间才能得到一个节点的净时间。

你可以使用https://explain.depesz.com这样的执行计划,它会为你计算每一步的净时间。