Приведи пример самых вероятных оптимизаций в PostgreSQL

Python Senior Рамблер
Приведи пример самых вероятных оптимизаций в PostgreSQL
Ответы
- **Индексы** – ускорение поиска по часто используемым полям. ``` CREATE INDEX idx_users_email ON users(email); ``` - **Оптимизация запросов** – избегание `SELECT *`, использование `EXPLAIN ANALYZE` для анализа. ``` EXPLAIN ANALYZE SELECT id FROM users WHERE active = true; ``` - **Партиционирование** – разделение больших таблиц на части (например, по датам). ``` CREATE TABLE logs_2023 PARTITION OF logs FOR VALUES FROM ('2023-01-01') TO ('2024-01-01'); ``` - **Настройка `work_mem`** – увеличение памяти для сортировки и агрегации. ``` SET work_mem = '64MB'; ``` - **Кэширование (materialized views)** – предрасчет сложных запросов. ``` CREATE MATERIALIZED VIEW monthly_sales AS SELECT date_trunc('month', sale_date) AS month, SUM(amount) FROM sales GROUP BY month; ``` - **Оптимизация JOIN** – правильный порядок таблиц и использование индексов. - **VACUUM и ANALYZE** – регулярное обслуживание БД. ``` VACUUM ANALYZE users; ```