RDS上PostgreSQL慢查询日志记录低于配置阈值问题咨询
问题原因
你当前确实是所有查询都会被记录,问题出在两个参数的作用逻辑冲突:
log_statement控制的是记录的SQL语句类型,当你将其设置为all时,PostgreSQL会无视耗时阈值,记录所有执行的SQL语句,不管执行时间长短都会写入日志。pgAdmin连接数据库时自动触发的元数据查询(比如获取表结构、权限、schema列表等)也会被完整记录,这就是你看到大量低耗时查询日志的原因。log_min_duration_statement = 5000ms是独立的耗时阈值控制规则,该规则仅在log_statement未开启全量记录时生效,只会记录执行耗时超过5000ms的语句。
修复方案
如果你的需求是仅记录耗时超过5000ms的慢查询,只需调整参数配置:
- 将
log_statement参数修改为默认值none - 保留
log_min_duration_statement = 5000ms的配置 - 在RDS控制台应用参数组变更,该参数为动态参数,无需重启实例即可生效。
内容的提问来源于stack exchange,提问作者navyad
相关产品推荐
相关产品推荐

