Модуль 7.4: Данные — SQL и PostgreSQL
Типы баз данных
Реляционные, документные, ключ-значение — когда и что выбирать для бэкенда на Go.
Основы SQL
SELECT, WHERE, JOIN, GROUP BY, агрегаты и подзапросы — базовый SQL для Go-разработчика.
Изменение данных и схема
INSERT, UPDATE, DELETE, проектирование схемы и типы колонок PostgreSQL.
Индексы и EXPLAIN
B-tree индексы, составной порядок, leftmost-префикс, EXPLAIN ANALYZE — топ-1 не-Go тема собеса.
PostgreSQL из Go
Подключение через pgx v5, пул соединений pgxpool, выполнение запросов и сканирование результатов.
ORM и Query Builders
sqlx, sqlc, GORM, ent — плюсы и минусы, когда что выбирать.
Миграции
goose: версионирование схемы БД, накат и откат миграций в Go-проектах.
Транзакции и изоляция
ACID, уровни изоляции, грязное/неповторяемое чтение, фантомы, SELECT FOR UPDATE и SKIP LOCKED.
Безопасность и оптимизация
Параметризованные запросы против SQL-инъекций, поиск медленных запросов, pg_stat_statements.
Практика: «Слот» на PostgreSQL
Строим «Слот» на PostgreSQL: схема ресурсов и слотов, sqlc-запросы, BookSlot с SELECT FOR UPDATE, финальный API.