MENU

Fun & Interesting

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

VK Team 40,533 lượt xem 7 years ago
Video Not Working? Fix It Now

Слайды лекции: 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/

Comment