Данная инструкция подойдет для настройки postgre как на Linux, так и на Windows.

Файл с настройками postgresql.conf по умолчанию находиться в каталоге
Linux:/etc/postgresql/номер версии/main
Windows: C:\Program Files\Postgres\data\

Настоятельно рекомендуем перед изменением конфигурации сделать копию этого файла, чтобы у вас всегда была возможность вернуться к предыдущим настройкам. Также рекомендуем перезапускать службу postgresql после каждого измененного параметра, т.к. после того как вы изменили все параметры, будет очень сложно найти тот параметр, который не дает запустить sql.

В линукс — для перезапуска службы используем: systemctl restart postgresql
В Windows — заходим в службы, находим службу с именем PostgreSQL и перезапускаем ее.

Параметры:
shared_buffers = RAM/4
max_connections = 500..1000
work_mem = RAM/32..64
temp_buffers = 256MB
fsync = on
wal_keep_segments = 256
wal_buffers = 16MB
min_wal_size = 512MB .. 4G
max_wal_size = 2 * min_wal_size
checkpoint_completion_target = 0.9
default_statistics_target = 1000
autovacuum = on
autovacuum_max_workers = Число ядер/4..2 но не меньше 4
autovacuum_naptime = 20s
bgwriter_delay = 20ms
bgwriter_lru_multiplier = 4.0
bgwriter_lru_maxpages = 400
synchronous_commit = off
ssl = off
effective_io_concurrency = 1….1000
Важно! Настраивается только в среде Linux, в Windows системах его значение должно быть равно нулю.
1 — для одиночного диска, 2 для RAID, 200 для SSD, 500..1000 для NVMe.
row_security = off
enable_nestloop = off
max_locks_per_transaction = 256
escape_string_warning = off
standard_conforming_strings = off
join_collapse_limit = 20
seq_page_cost = 0.1
random_page_cost = 2-4 — для одиночного диска, 1.5-2.0 для RAID, 1.1-1.3 для SSD,
cpu_operator_cost = 0.00025