我在一台速度较慢的旧计算机上运行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,我希望它会使用更多。
我将在第一次数据导入期间每个表创建一次索引。有没有我可以调整的设置来加速这个操作?
答案 0 :(得分:1)
将maintenance_work_mem
增加到1GB并使用C
语言环境初始化数据库集群而不是系统上的默认设置,只需2分钟。