2
私は、高速SSDディスク、2,4 GHz i5プロセッサ、および8 GBのRAMを搭載した遅い古いコンピュータでpostgresサーバーを実行しています。コンピュータはスピードモンスターではありませんが、パフォーマンスには驚いています。 40,000,000行のテーブルにインデックスを作成するには、およそ30分かかります。私の設定は次のとおりです。Postgres:CPUバインドCREATE INDEX
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
出力を見たとき、私はデータベースが使用するメモリは約500 MBでしたが、CPU(100%のCPU)が結合していると私はそれがより使用することを期待するように見えます。
最初のデータのインポート時に、テーブルごとにインデックスを1回だけ作成します。この操作を高速化するために微調整できる設定はありますか?
CPUにバインドされている場合は、それ以上の調整はできません。 – joanolo
計算コストの高いインデックスですか?それはそれを説明するでしょう。おそらく 'CREATE INDEX'ステートメントを表示することができます。 'maintenance_work_mem'を増やした方が速くなりますか? –
'maintenance_work_mem'で確認します。作成は簡単です、 'CREATE INDEX index_name on name(varcharField);' – wczekalski