Это видео недоступно.
Сожалеем об этом.

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

Поделиться
HTML-код
  • Опубликовано: 17 апр 2017
  • Слайды лекции: bozaro.github....
    Лекция читается в рамках образовательного проекта «Технопарк 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 (классический / сокращённый вариант)
    Другие лекции курса: • Курс · Базы данных (ве...
    VK Team - это безграничные возможности проявить себя. Мы делаем современные и быстрые интернет-сервисы, доступные каждому. На этом канале делимся опытом компании VK, рассказываем о технологиях, наших образовательных проектах и жизни команды.
    😎 Сообщество ВКонтакте: vkteam
    👨‍🎓 VK Education: education.vk.c...
    🏆 Чемпионаты: cups.online/
    👨‍💻 Карьера в VK: team.vk.company/

Комментарии • 10

  • @pechorinandrey
    @pechorinandrey 6 лет назад +50

    Блин, офигенный курс на самом деле, спасибо большое! :)

    • @vkteamchannel
      @vkteamchannel  6 лет назад +7

      Спасибо за отзыв, нам приятно :)

  • @DarDarbl4
    @DarDarbl4 5 лет назад +4

    Спасибо!! Очень ценно!

  • @GravityFFF
    @GravityFFF 6 лет назад +2

    Понравилось. Звук хороший

  • @lord31337rulit
    @lord31337rulit 5 лет назад +1

    в первом примере просто могли бы план запроса показать.

  • @TheAtomov
    @TheAtomov 5 лет назад

    Какая ключевая ошибка из-за которой обновление зависло на 40 минут?
    Нельзя менять уникальное поле, если его обновляет другая транзакция?

  • @pages777
    @pages777 7 месяцев назад +1

    08.01.2024

  • @alex-su81
    @alex-su81 5 лет назад

    А где-то можно скачать демо базу?

    • @22222222222222223464
      @22222222222222223464 4 года назад +2

      github.com/bozaro/tech-db-lectures/blob/master/scripts/movielens/load-pgsql.sh