Капоне
Администратор
- Регистрация
- 1 Апр 2015
- Сообщения
- 94.960
- Реакции
- 465.727
Складчина: PostgreSQL 17 архитектура и тюнинг SQL-запросов [Николай Ихалайнен]
На курсе вы сможете:
Понять, как работает внутри самая популярная открытая СУБД PostgreSQL
Изучить архитектуру хранения данных в PostgreSQL, типы и особенности индексов
Получить практику EXPLAIN, EXPLAIN ANALYZE, различных трюков оптимизации БД
Используя свой собственный выделенный облачный PostgreSQL-сервер (8 vCPU, 12G RAM, 100G NVMe) – БЕСПЛАТНО предоставляется на время обучения
Разобраться в деталях, как работают современные СУБД
Какие есть архитектурные особенности у СУБД в целом и у PostgreSQL в частности
Что такое MVCC, ACID, WAL, LRU, PPC/TPC и другие аббревиатуры из мира СУБД
Программа обучения:
Встречи: 5 недель + 1 резерв (QA) + собственный настроенный PG-сервер в подарок + 45 дней практики
Живые лекции и живые демо с автором курса, Николаем Ихалайненом. Первая, вводная встреча (архитектура СУБД) - совместная, Николая Ихалайнена с основателем devhands, Алексеем Рыбаком. Ведётся запись, ссылка выкладывается в чат. С первого же занятия мы выдаем доступ к настроенной инфраструктуре для выполнения практических заданий. Все встречи начинаются в 18:00 МСК (GMT+3), проходят в Zoom. Ссылка на Zoom-митинг «запинена» в чате.
Занятие 1. Введение в архитектуру СУБД
Совместная встреча (Николай Ихалайнен, Алексей Рыбак).
Знакомство с основными концепциями СУБД через наивную попытку спроектировать СУБД самостоятельно (повторять не рекомендуется).
Постановка задачи: семейный финансовый трекер. Консольная утилита -> сервер с PPC-моделью. Файл данных. Поиск и индексный файл. Вторичные индексы. Транзакции и ACID. Изоляция, фантомные чтения. Многоверсионность (MVCC). Undo/Redo сегменты. Концепция Write-Ahead логов (WAL). Особенности ОС и железа: буферизация и отложенная синхронизация. Кеш блоков и страниц, LRU. Многопользовательская серверная архитектура, особенности PPC-модели. Блокировки. Дополнительные таблицы и отчёты: группировки, джойны, планы выполнения. Финальная схема решения и обсуждение.
Занятие 2. Архитектура хранения данных и запросы по одной таблице
Темы: Метрики производительности запросов. Структура хранения строк таблицы, Heap. Хранение BLOB/CLOB, TOAST. Индексы, B-tree, Hash, GIN.Простые сканы, параллельное выполнение, EXPLAIN, EXPLAIN ANALYZE. Одноколоночные индексы стоимость выборки из индекса. Полное сканирование индекса, постраничный вывод Late Row Lookups.
Практика: Время исполнения запроса и ресурсы. Как PG хранит наши данные (записи в страницах HEAP и B-tree, заголовки страниц). План исполнения запросов с индексами и без. Селективность. Оптимизация полного сканирования для постраничного вывода.
Сбор данных и анализ графиков
Занятие 3. Сложные индексы по нескольким колонкам и запросы с фильтрации по нескольким условиям
Темы: Многоколоночные индексы. Дублирующие индексы, игнорирование индекса, подсказки оптимизатору. Повышение эффективности индексов, неключевые поля, отфильтрованные, вычисляемые поля. Слияние индексов. Сортировка с помощью индексов. Оптимизация структуры БД, нормализация/денормализация. Виды JOIN: Nested Loop, Merge, Hash. CTE: Predicate Pushdown. Коррелированные подзапросы, агрегирующие функции
Практика: Оптимизация запросов с несколькими условиями фильтрации. Подбор оптимального состава индекса и порядка следования столбцов. Использование слияния нескольких индексов. Поиск и удаление неиспользуемых индексов. Получаем рекомендации по новым индексам: pg_qualstats и hypopg. Делаем индексы и запросы, которые работают только с индексом. Уменьшаем размер индекса фильтрацией. Генерируемые столбцы и индексы над ними. Индексы для сортировки ORDER BY. Сравнение различных методов Слияний. Оптимизация коррелированных подзапросов
Занятие 4. Строгая типизация данных для хранимых объектов и обработка данных на стороне сервера
Темы: Типы данных. Использование JSON/BSON. Процедуры, выполнение обработки данных на стороне сервера. Роли и права доступа к объектам сервера. Типичные проблемы производительности PostgreSQL. (was: при миграции с других СУБД).
Практика: Сравнение полной выборки строки и только колонок без TOAST. Использование JSON с GIN, B-tree и HASH индексами. Процедуры, выполнение обработки данных на стороне сервера
Занятие 5. Консистентное изменение БД, блокировки и восстановление после сбоев
Темы: Снимок состояния БД. ACID: Atomicity, Атомарность. Уровни изоляции. Исследование блокировок. Взаимные блокировки. Write Ahead Log, восстановление после сбоев, aciD. Резервное копирование (backup), репликация.
Практика: Поведение уровней изоляции на примерах, блокировки строк, сбои сериализации транзакций. Смотрим LWLock, почему база тормозит "внутри". Дампим Write Ahead Log, ищем таймлайны.
Старт следующего потока 24-го апреля 2025 года
Цена 50000 руб.
СЛИВЫ КУРСОВ
На курсе вы сможете:
Понять, как работает внутри самая популярная открытая СУБД PostgreSQL
Изучить архитектуру хранения данных в PostgreSQL, типы и особенности индексов
Получить практику EXPLAIN, EXPLAIN ANALYZE, различных трюков оптимизации БД
Используя свой собственный выделенный облачный PostgreSQL-сервер (8 vCPU, 12G RAM, 100G NVMe) – БЕСПЛАТНО предоставляется на время обучения
Разобраться в деталях, как работают современные СУБД
Какие есть архитектурные особенности у СУБД в целом и у PostgreSQL в частности
Что такое MVCC, ACID, WAL, LRU, PPC/TPC и другие аббревиатуры из мира СУБД
Программа обучения:
Встречи: 5 недель + 1 резерв (QA) + собственный настроенный PG-сервер в подарок + 45 дней практики
Живые лекции и живые демо с автором курса, Николаем Ихалайненом. Первая, вводная встреча (архитектура СУБД) - совместная, Николая Ихалайнена с основателем devhands, Алексеем Рыбаком. Ведётся запись, ссылка выкладывается в чат. С первого же занятия мы выдаем доступ к настроенной инфраструктуре для выполнения практических заданий. Все встречи начинаются в 18:00 МСК (GMT+3), проходят в Zoom. Ссылка на Zoom-митинг «запинена» в чате.
Занятие 1. Введение в архитектуру СУБД
Совместная встреча (Николай Ихалайнен, Алексей Рыбак).
Знакомство с основными концепциями СУБД через наивную попытку спроектировать СУБД самостоятельно (повторять не рекомендуется).
Постановка задачи: семейный финансовый трекер. Консольная утилита -> сервер с PPC-моделью. Файл данных. Поиск и индексный файл. Вторичные индексы. Транзакции и ACID. Изоляция, фантомные чтения. Многоверсионность (MVCC). Undo/Redo сегменты. Концепция Write-Ahead логов (WAL). Особенности ОС и железа: буферизация и отложенная синхронизация. Кеш блоков и страниц, LRU. Многопользовательская серверная архитектура, особенности PPC-модели. Блокировки. Дополнительные таблицы и отчёты: группировки, джойны, планы выполнения. Финальная схема решения и обсуждение.
Занятие 2. Архитектура хранения данных и запросы по одной таблице
Темы: Метрики производительности запросов. Структура хранения строк таблицы, Heap. Хранение BLOB/CLOB, TOAST. Индексы, B-tree, Hash, GIN.Простые сканы, параллельное выполнение, EXPLAIN, EXPLAIN ANALYZE. Одноколоночные индексы стоимость выборки из индекса. Полное сканирование индекса, постраничный вывод Late Row Lookups.
Практика: Время исполнения запроса и ресурсы. Как PG хранит наши данные (записи в страницах HEAP и B-tree, заголовки страниц). План исполнения запросов с индексами и без. Селективность. Оптимизация полного сканирования для постраничного вывода.
Сбор данных и анализ графиков
Занятие 3. Сложные индексы по нескольким колонкам и запросы с фильтрации по нескольким условиям
Темы: Многоколоночные индексы. Дублирующие индексы, игнорирование индекса, подсказки оптимизатору. Повышение эффективности индексов, неключевые поля, отфильтрованные, вычисляемые поля. Слияние индексов. Сортировка с помощью индексов. Оптимизация структуры БД, нормализация/денормализация. Виды JOIN: Nested Loop, Merge, Hash. CTE: Predicate Pushdown. Коррелированные подзапросы, агрегирующие функции
Практика: Оптимизация запросов с несколькими условиями фильтрации. Подбор оптимального состава индекса и порядка следования столбцов. Использование слияния нескольких индексов. Поиск и удаление неиспользуемых индексов. Получаем рекомендации по новым индексам: pg_qualstats и hypopg. Делаем индексы и запросы, которые работают только с индексом. Уменьшаем размер индекса фильтрацией. Генерируемые столбцы и индексы над ними. Индексы для сортировки ORDER BY. Сравнение различных методов Слияний. Оптимизация коррелированных подзапросов
Занятие 4. Строгая типизация данных для хранимых объектов и обработка данных на стороне сервера
Темы: Типы данных. Использование JSON/BSON. Процедуры, выполнение обработки данных на стороне сервера. Роли и права доступа к объектам сервера. Типичные проблемы производительности PostgreSQL. (was: при миграции с других СУБД).
Практика: Сравнение полной выборки строки и только колонок без TOAST. Использование JSON с GIN, B-tree и HASH индексами. Процедуры, выполнение обработки данных на стороне сервера
Занятие 5. Консистентное изменение БД, блокировки и восстановление после сбоев
Темы: Снимок состояния БД. ACID: Atomicity, Атомарность. Уровни изоляции. Исследование блокировок. Взаимные блокировки. Write Ahead Log, восстановление после сбоев, aciD. Резервное копирование (backup), репликация.
Практика: Поведение уровней изоляции на примерах, блокировки строк, сбои сериализации транзакций. Смотрим LWLock, почему база тормозит "внутри". Дампим Write Ahead Log, ищем таймлайны.
Старт следующего потока 24-го апреля 2025 года
Цена 50000 руб.
СЛИВЫ КУРСОВ
Для просмотра скрытого содержимого вы должны зарегистрироваться
Возможно, Вас ещё заинтересует:
- База поставщиков 2.0 [Максим Штейников]
- Молодость. Перезагрузка. 30 сезон [Тариф Стандартный] [Ревитоника] [Анастасия Дубинская, Анастасия Табина, Анастасия Плещева]
- Инвестиции со смыслом [Vesperfin] [Арина Веспер]
- Путь помогающего. Как построить прибыльное дело с душой и опорой на себя [Виталина Скворцова-Охрицкая]
- Автоматизация тестирования c Playwright на JS/TS: полный курс [Stepik] [Степан Осадший]
- [ИИ] Искусственный интеллект hailuoai: помощник в создании видео [Тариф Max] [hailuoai.video] [№7, на 1 месяц до 24 человек, по записи]