2
我正在一個速度較慢的舊計算機上運行postgres服務器,該計算機具有一個快速SSD磁盤,2,4 GHz i5處理器和8 GB的RAM。電腦不是速度怪物,但我對這個表現感到驚訝。在具有40,000,000行的表中創建索引需要大約半個小時。我的設置如下:Postgres:CPU綁定創建索引
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
當我看着top
輸出它看起來像我的CPU綁定的(100%CPU),儘管數據庫所使用的內存大約爲500 MB,我希望它使用更多。
我將在首次數據導入期間爲每個表只創建一次索引。有沒有我可以調整的設置來加速此操作?
如果你是CPU綁定...你可以調整的不多。 – joanolo
是一個計算成本很高的索引?這將解釋它。也許你可以顯示CREATE INDEX語句。如果增加'maintenance_work_mem',它會變得更快嗎? –
我會用'maintenance_work_mem'來檢查。創建很簡單,'CREATE INDEX index_name on name(varcharField);' – wczekalski