EXPLAIN是一個用來分析 SQL 語法很好用的工具,不只是 MySQL , PostgreSQL 也可以使用,接下來會介紹一下,EXPLAIN 在 PostgreSQL 提供什麼樣的分析,在 pgAdmin 裡面要如何使用。
要在 pgAdmin 使用 EXPLAIN ,除了可以使用 SQL script 之外,也可以使用 pgAdmin 提供的 EXPLAIN 。
EXPLAIN
SELECT * FROM person
INNER join city on city.city_id = person.city_id
pgAdmin 有提供 EXPLAIN 和 EXPLAIN ANALYZE ,旁邊有一個下拉選單可以打開選擇要做哪些分析,跟下 SQL script 比較不一樣的地方在於,它把原本 EXPLAIN 的結果多做了一些圖和表格整理。下面的範例可以看到 pgAdmin 把 table join 的時候, PostgreSQL 的行為用圖清楚說明,先把兩張 table 的資料 scan 之後,在把 join 的資料做 hash 放到 hash table ,最後再進行合併。