Установка PostgreSQL 16
apt install -y postgresql-16 postgresql-contrib
systemctl enable --now postgresql
su - postgres -c "psql -c '\l'" # Список баз
Создание базы данных и пользователя
su - postgres
psql
CREATE USER myapp WITH PASSWORD 'strongpassword';
CREATE DATABASE myappdb OWNER myapp ENCODING 'UTF8';
GRANT ALL PRIVILEGES ON DATABASE myappdb TO myapp;
\q
Оптимизация postgresql.conf
# /etc/postgresql/16/main/postgresql.conf
# Для сервера с 8 ГБ RAM
max_connections = 100
shared_buffers = 2GB # 25% RAM
effective_cache_size = 6GB # 75% RAM
work_mem = 10MB # RAM / max_connections / 2
maintenance_work_mem = 512MB
wal_buffers = 16MB
checkpoint_completion_target = 0.9
random_page_cost = 1.1 # SSD
effective_io_concurrency = 200 # SSD
Полезные команды psql
| Команда | Описание |
|---|---|
| \l | Список баз данных |
| \c dbname | Подключиться к БД |
| \dt | Список таблиц |
| \d tablename | Структура таблицы |
| \du | Список пользователей |
💡 Используйте pgBouncer для connection pooling — PostgreSQL плохо справляется с тысячами одновременных подключений.