Налаштування продуктивності PostgreSQL
Програма навчання
Зміст курсу
- Аналіз планів виконання запитів
- Створення та оптимізація індексів
- Типи індексів та випадки використання
- Налаштування параметрів пам'яті
- VACUUM, ANALYZE та обслуговування таблиць
- Партиціонування даних
- Connection pooling
- Профілювання запитів через pg_stat_statements
- Діагностика проблем продуктивності
Тривалість: 6 тижнів інтенсивної практики
Детальний опис курсу
Ваші запити працюють по 30 секунд замість мілісекунд? Бази гальмують під навантаженням і ви не знаєте де копати? Тут розберемо саме цю проблему.
Почнемо з EXPLAIN ANALYZE – як його читати і що він насправді показує. Чому PostgreSQL іноді обирає sequential scan замість індексу, і коли це насправді правильний вибір. Розберемо типи індексів: B-tree, Hash, GiST, GIN – коли який використовувати.
Реальні кейси
Візьмемо повільний запит з JOIN по п'яти таблицях. Подивимось план виконання, знайдемо вузьке місце. Додамо індекс – запит все одно повільний. Чому? Розберемо статистику PostgreSQL, запустимо VACUUM ANALYZE, перевіримо ще раз.
Налаштуємо shared_buffers, work_mem, effective_cache_size під конкретний сервер з 16GB RAM. Пояснимо чому дефолтні налаштування не підходять для продакшена.
Що ще пройдемо
Партиціонування великих таблиць. Connection pooling через PgBouncer. Налаштування checkpoint для зменшення IO. Моніторинг через pg_stat_statements.
Потрібен досвід роботи з SQL запитами та базове розуміння PostgreSQL.