“我的 Postgres 查詢為什麼這麼慢?連線串在 ~/.pg-creds 裡。”
Zentor 會做什麼
- 1 讀取 ~/.pg-creds(因為裡面含有憑據,會先請你確認)。
- 2 用 psql 連線,並對你標記的那條查詢執行 EXPLAIN ANALYZE。
- 3 發現對 400 萬行做了一次順序掃描(sequential scan),而在 (user_id, created_at) 上建索引會有幫助。
- 4 生成 CREATE INDEX 語句和對應的還原語句,可直接貼上使用。
回覆:“找到了——查詢規劃器在做順序掃描,因為 (user_id, created_at) 上沒有索引。加上這個複合索引後,成本從 84,000 降到了 12。這是 CREATE INDEX 語句,還有一條以防萬一的還原語句。”你應用後,下一次查詢在 14ms 內完成。