Продолжительность
2 ч 49 мин 22 сек
Количество уроков
70 Видео
Дата добавления
22.12.2023
Советы по тюнингу MySQL от профессионала. Узнайте, как предотвратить проблемы с производительностью MySQL. Поймите, как MySQL оптимизирует и выполняет запросы.
Архитектура MySQL
- Просмотр шагов, вовлеченных в выполнение запроса
- Как протокол клиент/сервер влияет на MySQL
- Понимание того, как оптимизатор запросов выполняет свою работу
- Как уровень хранилища делает MySQL уникальным
Поиск кандидатов для оптимизации запросов
- Использование Performance Schema, которая является настоящей находкой для выявления запросов для оптимизации, поскольку она позволяет нам измерять, где уходит время
- Поиск нескольких запросов, за которыми скрывается основная часть нагрузки на систему. Проверка топ-1000 запросов обычно не стоит того, чтобы тратить на них время для оптимизации.
- Как найти актуальную информацию из обилия представлений и метрик производительности, доступных в MySQL
- Понимание того, почему операторы UPDATE и DELETE также считаются чтениями, хотя они в первую очередь представляют собой операторы записи. Это повлияет на ввод/вывод и, следовательно, на время ответа.
Анализ запросов
- Понимание того, почему MySQL создает план запроса перед каждым запросом
- Как читать планы запросов и понимать, как работает каждый из основных типов узлов в MySQL
- Серия примеров, чтобы показать, как можно использовать вывод EXPLAIN, чтобы определить, где MySQL тратит время на ваш запрос, и почему
- Какие ключевые моменты следует учитывать для выявления проблем с производительностью
Кластеризованный индекс и выбор первичного ключа
- Когда мы работаем с таблицами, организованными по индексам, как в MySQL, выбор первичного индекса очень важен.
- Мы увидим, как первичный ключ может влиять на количество случайного или последовательного ввода/вывода, размер вторичных индексов и количество страниц, которые должны быть считаны в буферный пул.
- Мы будем понимать, почему оптимальный первичный ключ с точки зрения кластеризованного индекса должен быть как можно меньше (в байтах), постоянно увеличиваться монотонно и группировать строки, которые мы часто запрашиваем, вблизи друг от друга.
Индексирование для производительности
- Каковы основные функции индекса?
- Мы увидим, какие таблицы действительно нуждаются в индексе, а какие таблицы лучше всего обходить без него.
- Мы проверим, как MySQL полагается на статистику для выбора лучшего индекса и как мы можем помочь ему принимать более обоснованные решения.
Составные индексы
- Общие ошибки при использовании составных индексов
- Как определить порядок столбцов для многоколоночных индексов
- Умение логически мыслить о том, как работают индексы, и выбирать их на основе этого понимания, а не по правилам на основе опыта
- Какие сценарии использования делают избыточные индексы полезными и когда их лучше избегать.
- Работа над некоторыми тестами для проверки фактической производительности в цифрах.
Конфигурации сервера MySQL
- Проверьте, как мы должны подходить к изменениям конфигурации MySQL, учитывая некоторые лучшие практики, чтобы мы могли успешно настроить MySQL.
- Какие три параметра, скорее всего, принесут пользу MySQL при использовании нестандартных значений, и как их установить.
- Ознакомьтесь с обзором жизненного цикла данных в InnoDB, чтобы у нас было предварительное представление при внесении изменений в конфигурацию.
- Настройка параметров, важных для определенных сценариев использования, например, экземпляров буферного пула для высоконагруженных рабочих нагрузок, и как использовать параллельное выполнение для определенных запросов.
Транзакции и блокировки в MySQL
- Транзакции очень важны для обеспечения целостности данных, но при неправильном использовании они могут вызвать серьезные проблемы с производительностью.
- Получите обзор того, почему нужны блокировки и некоторые способы уменьшить их влияние.
- Как индексы, разделение транзакции и уровни изоляции могут помочь уменьшить количество блокировок.
- Варианты мониторинга и какие отчетные таблицы следует проверять для выявления проблем с блокировками.
Введение в масштабирование MySQL
- Что означает масштабирование MySQL, и мы рассмотрим различные оси, по которым нам может потребоваться масштабироваться.
- Понимание того, как масштабировать различные виды нагрузок
- Репликация и почему нам нужно использовать Read-Pools, Health Checks и Service Discovery
- Какие основные проблемы и подводные камни при принятии решения о фрагментации базы данных
- Как разбивать данные в MySQL
- Какие сценарии использования и преимущества использования очереди
- Основные концепции для масштабирования записей с использованием фрагментации