Postgres 9.6:重启后插入速度非常慢

时间:2018-01-18 18:43:04

标签: linux postgresql sql-insert

将数据导入postgres时,我遇到了一个奇怪的问题。我有一个导入脚本,每天晚上通过Linux操作系统上的cronjob运行一次(Linux 4.9.0-5-amd64 #1 SMP Debian 4.9.65-3+deb9u2 (2018-01-04) x86_64 GNU/Linux)。该过程读取包含大约200万行的文件,并将这些行批量插入表中(批量大小为25.000)。这大约需要2到2.5分钟,这是绝对合理的。该表有3个索引,同时包含超过130M行。为了提高性能,我将表格声明为UNLOGGED并禁用WAL。我不时需要升级需要重启服务器的系统。这会以某种方式影响数据库,因为数据导入突然耗费大约1到1.5小时。我无法找到任何理由。这里出了什么问题,有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这件事发生在我身上。不知道为什么,但对我来说,重新启动postgresql服务后修复了它。我的想法是,如果你不重启服务(即使重启后),似乎postgres保持其WAL(预写日志记录)。通过重新启动服务,一切都会清理干净,所以一切都和新的一样好。但是,也许还有另一个原因。无论如何,尝试重新启动服务而不是重新启动或重新启动后重新启动服务。

阅读问题评论以获取更多信息或@ user35934发布的link