启用慢查询日志记录后,我们看到许多COMMIT花费了数秒以上才能在我们的生产数据库上完成。经调查,这些通常是简单的事务:获取一行,UPDATE该行,COMMIT。这些特定事务中的SELECTUPDATE不会被记录得很慢。有什么我们可以做的,还是可以使用的工具,来找出这些缓慢提交的原因?我们正在SSD上运行,并且正在流传输到从属设备(如果有区别的话)。

最佳答案

Postgres提交是同步的。这意味着他们将等待WAL写入完成,然后再进行下一个写入。您可以在配置文件中调整WAL设置以对此进行调整。

您可以使用配置文件中的synchronous_commit在 session /用户级别或数据库范围将提交级别设置为异步。

在数据库方面。

清理您的表以更新统计信息。这将消除死元组,因为您执行的更新将很多。

VACUUM ANALYZE

关于postgresql - 调试慢的Postgresql 9.3 COMMIT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41081320/

10-15 21:17