6. Базы данных. Оптимизация запросов. Оптимизация структуры данных

6. Базы данных. Оптимизация запросов. Оптимизация структуры данных

40.741 Lượt nghe
6. Базы данных. Оптимизация запросов. Оптимизация структуры данных
Слайды лекции: https://bozaro.github.io/tech-db-lectures/06/ Лекция читается в рамках образовательного проекта «Технопарк Mail.ru Group» при МГТУ им. Баумана. Лекция посвящена производительности (оптимизации работы с БД). В этом видео: • нормализация и денормализация данных; • оптимизация запросов конкретных типов; • разница между актуальными и историческими данными; • секционирование; • оптимизация на уровне приложения; • примеры эффективного массового изменения данных. 00:00:03 О теме лекции 00:00:54 Нормализация и денормализация данных (на примере тестовой БД из прошлой лекции) 00:02:43 Вопрос залу: о приоритете применения того или метода построения запроса 00:04:10 Повторение пройденного материала: о покрывающем индексе 00:04:45 Повторение пройденного материала: про подзапросы (SUBQUERIES) 00:07:47 Повторение пройденного материала: краткий итог 00:11:01 Вопрос залу: в каком случае не нужны индексы для внешних ключей (FOREIGN KEY)? 00:12:44 Продолжение рассмотрения примера из тестовой БД: Заменим 'Zombie%' на 'Comedy%' 00:13:12 Оптимизируйте доступ к данным (модификация запросов) 00:17:45 Нормализация (плюсы нормализации данных) 00:18:56 Денормализация (методы денормализации данных) 00:22:04 Нормализация/денормализация: пример 00:25:18 Оптимизация запросов конкретных типов 00:25:33 Оптимизация DELETE: очистка таблицы 00:28:07 Оптимизация COUNT(*): получение количества записей в таблице 00:31:28 Оптимизация COUNT(*): получение количества записей после выполнения запроса 00:33:20 Оптимизация LIMIT со смещением 00:40:46 Оптимизация: случай из практики 00:44:21 Исторические и актуальные данные (настоящее vs прошлое) 00:46:44 Актуальные данные (особенности и проблемы) 00:49:12 Исторические данные (особенности и проблемы) 00:57:47 Вопрос из зала по пройденному материалу 00:58:17 Ответ и уточняющие вопросы 01:00:36 Исторические данные (особенности и проблемы) — продолжение 01:02:03 Цитата о «биг дата» 01:02:49 Секционирование (англ. partitioning) 01:06:48 Секционирование: наследование 01:16:13 Секционирование: наследование (плюсы и минусы) 01:19:46 Секционирование: pg_pathman (плюсы и минусы) 01:22:11 Секционирование: PostgreSQL 10 (плюсы и минусы) 01:23:45 Оптимизация на уровне приложения (уменьшение времени блокировок) 01:26:56 Разбитие запроса на более мелкие 01:31:09 Модификация схемы 01:39:50 Группировка UPDATE 01:45:54 Массовая вставка данных 01:53:08 Загрузка данных через COPY 01:55:11 Блокировки (пессимистичная / оптимистичная) 01:59:54 Ограничение времени ожидания (долгий / ждущий / срочный запрос) 02:04:42 CREATE INDEX (блокирующее / неблокирующее создание индекса) 02:05:36 ALTER TABLE (классический / сокращённый вариант) Другие лекции курса: https://www.youtube.com/playlist?list=PLrCZzMib1e9oOFQbuOgjKYbRUoA8zGKnj VK Team — это безграничные возможности проявить себя. Мы делаем современные и быстрые интернет-сервисы, доступные каждому. На этом канале делимся опытом компании VK, рассказываем о технологиях, наших образовательных проектах и жизни команды. 😎 Сообщество ВКонтакте: https://vk.com/vkteam 👨‍🎓 VK Education: https://education.vk.company/ 🏆 Чемпионаты: https://cups.online/ 👨‍💻 Карьера в VK: https://team.vk.company/