Цель курса
Установка, настройка, базовое администрирование. Написание запросов / оптимизация запросов. Изучение особенностей СУДБ
Предварительная подготовка
• Знакомство с Unix
• Минимальные сведения о БД и SQL
1. Установка Postgres
• Планирование развертывания Postgres
• Установка под Linux и Windows
• Выполнение первоочередных послеустановочных задач
• Система папок PostgreSQL и файлы конфигурации
2. Настройка Postgres
• Система файлов конфигурации
• Команда ALTER SYSTEM
• Самые важные настройки Postgres
• Создание и настройка баз данных PostgreSQL
• Структура баз данных и WAL
• Работа с шаблонами баз данных
3. Базовое администрирование
• Настройка аутентификации через файлы конфигурации, роли PosgtreSQL
• Система разрешений PostgreSQL, наилучшие практики при работе с разрешениями
• Настройка системы PGAgent для выполнения задач по расписанию, типы заданий и шагов, контроль и логи выполнения заданий
• Введение в резервное копирование и восстановление (логическое – дампы и двоичное), восстановление с использованием журналов WAL
• Подключение к внешним источникам данных: Foreign Data Wrappers (FDW)
4. Написание запросов
• Основы синтаксиса языка запросов 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.
5. Оптимизация запросов
• Оптимизация запросов в Postgres.
• Выбор запросов для оптимизации.
• Команда EXPLAIN.
• Применение параметров конфигурации на уровне сеанса.
• Развертывание модуля pg_hint_plans и применение хинтов в запросах.
• Лучшие практики при оптимизации запросов в Postgres.
6. Особенности СУБД Postgres. Основные отличия от других БД, включая SQL Server.