EXPLAIN 与运维
psql 元命令与日常 DDL/DML:基础命令。
EXPLAIN ANALYZE
EXPLAIN ANALYZE
SELECT * FROM orders WHERE user_id = 42 AND status = 'paid';| 关键词 | 说明 |
|---|---|
Seq Scan | 全表扫描,考虑加索引 |
Index Scan | 走索引,有回表 |
Index Only Scan | 覆盖索引,无回表 |
Bitmap Index Scan | 多个索引合并使用 |
actual time | 实际执行时间 |
rows | 实际行数,与预估差距大说明需要 ANALYZE |
统计与清理
ANALYZE users; -- 更新统计信息(执行计划不准时用)
VACUUM ANALYZE users; -- 清理死元组并更新统计连接与会话
SELECT pid, usename, state, query
FROM pg_stat_activity
WHERE state != 'idle';
SELECT pg_terminate_backend(pid);