SQLLab

Оптимизация и индексы

Pro

Научитесь читать план выполнения EXPLAIN ANALYZE и понимать, почему PostgreSQL выбирает Seq Scan вместо Index Scan. Освоите все типы индексов: B-tree, Hash, GIN, BRIN, partial и covering (INCLUDE). Узнаете антипаттерны, которые «ломают» индекс: функция на колонке, implicit cast, NOT IN с NULL. Поймёте, как работают VACUUM и ANALYZE, и как следить за состоянием базы через pg_stat_user_tables и pg_stat_user_indexes. 52 практических урока на датасете e-commerce.

Что вы научитесь

  • Читать и интерпретировать вывод EXPLAIN ANALYZE
  • Понимать разницу между Seq Scan, Index Scan и Bitmap Scan
  • Создавать B-tree, covering и составные индексы
  • Знать, когда использовать Hash, GIN, BRIN и partial индексы
  • Применять правило левого префикса для составных индексов
  • Избегать антипаттернов, которые отключают индекс
  • Использовать keyset-пагинацию вместо OFFSET
  • Диагностировать состояние таблиц через pg_stat_user_tables
  • Находить неиспользуемые индексы через pg_stat_user_indexes
  • Понимать, зачем нужны VACUUM и ANALYZE

Программа курса · 4 трека

1

EXPLAIN и план выполнения запроса

EXPLAIN показывает, как PostgreSQL решает выполнить запрос. Seq Scan, Index Scan, Hash Join — понять план значит понять узкие места. Научитесь читать стоимость, строки и буферы.

2 модуля13 уроков4 задания

Ещё не начат

2

Индексы в PostgreSQL

B-tree — универсальный индекс для равенства и диапазонов. Составные индексы и порядок колонок. Hash — только для равенства. GIN — для массивов и JSONB. Частичные индексы — индексируем только нужные строки.

2 модуля13 уроков4 задания

Ещё не начат

3

Оптимизация запросов

Антипаттерны, которые заставляют PostgreSQL игнорировать индексы. Функции в WHERE, implicit cast, OR вместо IN. Оптимизация JOIN, пагинации и N+1 запросов.

2 модуля13 уроков4 задания

Ещё не начат

4

Обслуживание базы и итоговый проект

VACUUM и ANALYZE: почему таблицы раздуваются и как PostgreSQL актуализирует статистику. Представления pg_stat_user_tables и pg_stat_user_indexes. Итоговый проект — полный цикл оптимизации e-commerce запросов.

2 модуля13 уроков4 задания

Ещё не начат

Получите полный доступ к курсу

Все уроки, практические задания и проверка запросов — навсегда.