调试 PostgreSQL 慢查询
今天早些时候,我一直在排查为什么会出现偶发的延迟尖峰。我怀疑有一些需要优化的慢查询,但为了确认这一点,我需要启用慢查询日志。
如果你想让 PostgreSQL 记录所有执行时间超过 100ms 的语句,请在配置文件中添加:
log_min_duration_statement = 100然后使用以下命令重新加载 PostgreSQL 配置:
select pg_reload_conf();无需重启服务器!
此外,以下选项也可能有所帮助:
# Log all statements, not just the slow ones
# This may be very chatty, so make sure your log partition doesn't fill up
log_statement = all/ddl/none# Log durations alongside statements
log_duration = on在之前的工作中,我发现 pganalyze 在分析 PostgreSQL 性能方面非常出色。它需要一些额外的设置步骤,而且不是免费的。如果你重度依赖 PostgreSQL,我真的推荐使用它!
另外,我最喜欢的 PostgreSQL 配置选项资源是 postgresqlco.nf——它可以方便地浏览各种可用选项,还能贴心地显示哪些选项需要重启才能生效。
随机一篇博客