Программа курса поможет стать более опытными и уверенными в работе с PostgreSQL, что позволит более эффективно тестировать базы данных и обеспечивать их качество.
Изучение более продвинутых концепций и техник работы с PostgreSQL, которые помогут эффективно тестировать базы данных.
• Курс предназначен для инженеров по тестированию, которые уже имеют базовые знания работы с PostgreSQL и хотят углубить свои навыки в этой области
• Оптимизировать запросы
• Работать с индексами: создание, удаление, использование различных типов индексов.
Управление данными: резервное копирование и восстановление данных, миграция данных, работа с репликацией.
• Настраивать параметры базы данных, мониторинг производительности, обнаружение и устранение проблем.
• Проводить тестирование и обеспечивать качество: создание и выполнение тестовых сценариев, автоматизация тестирования, использование инструментов для тестирования PostgreSQL.
тестирования PostgreSQL.
1. Выполнение простых и перекрестных запросов
• Основы синтаксиса языка запросов Postgres SQL. Базовый синтаксис SELECT. Список столбцов и DISTINCT.
• Сортировка в запросах Postgres SQL. Выражение ORDER BY.
• Фильтрация в запросах Postgres SQL. Выражение WHERE. Логические операторы AND, OR, NOT, IN, BETWEEN. Поиск с использованием подстановочных символов (LIKE) и регулярных выражений (SIMILAR TO).
• Работа с пустыми значениями. Оператор IS NULL и функция COALESCE.
• Ограничение количества выводимых записей. LIMIT и FETCH.
• Встроенные скалярные функции в Postgres SQL: строковые, математические, даты/времени.
• Объединение нескольких таблиц в запросах. INNER JOIN, LEFT OUTER JOIN, RIGTH OUTER JOIN, FULL JOIN, SELF JOIN, CROSS JOIN. Особенности работы с объединениями в Postgres.
• Группировка в запросах Postgres SQL. Выражения GROUP BY, HAVING, CUBE, ROLLUP, GROUPING SETS. Агрегатные функции: SUM(), MIN(), MAX(), AVG(), COUNT и другие.
• Работа с подзапросами. Обычные и коррелирующие подзапросы. Особенности подзапросов в Postgres с точки зрения производительности.
• Работа с наборами значений. UNION, EXCEPT, INTERSECT, SOME/ANY/ALL, EXISTS.
• Временные таблицы и общие табличные выражения (CTE, Common Table Expressions).
• Декомпозиция запросов. Иерархические запросы в Postgres.
• Функции ранжирования в Postgres: ROW_NUMBER(), RANK(), DENSE_RANK(), NTILE() и другие.
2. Изменение данных в базе
• Команды, изменяющие данные: INSERT, UPDATE, DELETE, TRUNCATE в Postgres SQL. SELECT INTO и INSERT..SELECT.
• Работа с транзакциями в Postgres
3. Настройка параметров экземпляра, связанных с производительностью
• Анализ настроек сервера Postgres с точки зрения влияния на производительность.
• Файл postgresql.conf. Параметры shared_buffers, wal_buffers, effective_cache_size, maintenance_work_mem, max_parallel_workers_per_gather и другие.
• Сравнение производительности при разных вариантах настроек и применение pgbench
4. Поиск проблемных запросов и их оптимизация
• Оптимизация запросов в Postgres. Выбор запросов для оптимизации.
• Команда EXPLAIN. • Применение параметров конфигурации на уровне сеанса.
• Развертывание модуля pg_hint_plans и применение хинтов в запросах.
• Лучшие практики при оптимизации запросов в Postgres