CREATE INDEX idx_users_username ON users(username)
),复合索引适用于多列查询(如CREATE INDEX idx_users_region_age ON users(region, age)
)。VACUUM AND REINDEX TABLE
重建索引,消除碎片。EXPLAIN
分析执行计划,确保查询利用索引,避免WHERE
子句中使用函数或计算(如WHERE id + 1 = 5
)。JOIN
替代子查询,避免SELECT *
,只返回必要列。LIMIT
和OFFSET
分页,避免一次性加载大量数据。shared_buffers
:设置为系统内存的25%-40%,用于缓存数据。work_mem
:增加复杂排序/哈希操作内存(如64MB)。maintenance_work_mem
:调大至1GB+,优化VACUUM
等操作。max_parallel_workers_per_gather
(如4),启用并行处理。VACUUM ANALYZE
,更新统计信息以优化查询计划。pg_stat_activity
、pg_stat_statements
跟踪查询性能。pgAdmin
或PgHero
可视化分析慢查询。注意:优化前需在测试环境验证,避免过度索引或参数调整影响写入性能。