Про курс по Pg

Что бы я включил в курс о Postgresql

Столкнувшись с вопросом “Что бы Вы сказали о нашем курсе по Postgresql?”, я пришел к выводу, что будет правильно сформулировать мой ответ как ТЗ автору такого курса. Далее - оно.

1. База

Базовая документация Postgresql - https://www.postgresql.org/docs/
Ее версия на русском - https://postgrespro.ru/docs, но этот перевод предназначен “исключительно для использования в личных и/или некоммерческих целях”, поэтому, если курс - коммерческий, на перевод ссылаться не надо (но слушателям стоит о нем знать).

Обратная связь

  1. Два вида работ с БД - это разработка и администрирование. Будет полезно сразу узнать, зачем пришли слушатели, тут бы помогла анкета из десятка пунктов, чтобы понять, что именно хочет получить текущая группа
  2. ознакомиться с документацией и пройти опрос “понятно/надо пояснять/иное” - это позволит
    • понять уровень группы
    • отсечь очевидные темы
    • сосредоточиться на нужном

2. Введение

Pg - серверное приложение, для работы с ним нужен клиент. Варианты клиентов:

С сервером Pg можно поработать без его установки, варианты:

Обратная связь

  1. опрос - какой клиент предпочтительнее вам, чтобы мы его скриншоты вам на занятии показывали
  2. опрос - как с серверами, что удобнее - ссылки выше/на своем компе/VDS с linux/иное

3. Основная часть

Для закрепления привязки курса к Базовой документации, темы я бы оформил как ссылки на ее разделы.

5. Data Definition

Тут стоит обратить внимание на CREATE UNLOGGED TABLE, пример - PostgreSQL as a Cache

9. Functions and Operators

Тут стоит обратить внимание на

но наиболее интересен блок

9.16. JSON Functions and Operators
в чем фишка (от 2017г) - Postgres vs Mongo

13. Concurrency Control

  1. чаще всего используется Read Committed, стоит добавить задачи, для которых подошли бы другие уровни
  2. для отработки примеров подойдет https://uibakery.io/sql-playground
  3. еще полезное про блокировки - SELECT ... FOR UPDATE SKIP LOCKED

14.1. Using EXPLAIN

16. Installation from Binaries

В базовой доке нет ничего про облака или докер, про облака бы пригодился список вариантов с указанием текущих цен, про докер может хватить https://hub.docker.com/_/postgres

Обратная связь

Опрос - какова для вас сложность варианта

  • пакеты
  • docker

PS. Про обновление версии - уже есть простое решение (https://github.com/tianon/docker-postgres-upgrade), стоит его разобрать.

31. Logical Replication

Вполне можно в рамках одного занятия реализовать N-мультимастер на логической репликации с хэш-функцией.

38.7. Function Volatility Categories

Как описать функцию, которую можно запустить на реплике (потому что она не VOLATILE)

40. Event Triggers

Это про DDL-триггеры, хорошо бы добавить примеры (при изменении хранимки положить ее в гит?)

42. Procedural Languages

Дополнения

Проекты за рамками курса, которые, возможно, стоит упомянуть