Postgres для технологов РСО

Темы курса:

Запросы, оптимизация производительности запросов, оптимизация экземпляра

Продолжительность курса: 16 часов

План курса:

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