Postgres:CPU绑定CREATE INDEX

时间:2017-02-27 22:56:26

标签: sql performance postgresql

我在一台速度较慢的旧计算机上运行postgres服务器,该计算机具有快速SSD磁盘,2.4 GHz i5处理器和8 GB RAM。计算机不是速度怪物,但我对性能感到惊讶。在包含40,000,000行的表中创建索引大约需要半小时。我的设置如下:

web

当我查看max_connections = 2 shared_buffers = 2GB effective_cache_size = 6GB work_mem = 1GB maintenance_work_mem = 512MB min_wal_size = 1GB max_wal_size = 2GB checkpoint_completion_target = 0.7 wal_buffers = 16MB default_statistics_target = 100 输出时,看起来我是CPU绑定的(100%CPU),尽管数据库使用的内存大约为500 MB,我希望它会使用更多。

我将在第一次数据导入期间每个表创建一次索引。有没有我可以调整的设置来加速这个操作?

1 个答案:

答案 0 :(得分:1)

maintenance_work_mem增加到1GB并使用C语言环境初始化数据库集群而不是系统上的默认设置,只需2分钟。