MySQL: Советы по улучшению производительности

MySQL: Советы по улучшению производительности
en
18.05.2022
2 г 49 мін 22 сек

Советы по тюнингу 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
  • Какие сценарии использования и преимущества использования очереди
  • Основные концепции для масштабирования записей с использованием фрагментации

Вы не можете просматривать данный курс -

Array ( [bitrate] => 305887 [filesize] => 5588114 [mime_type] => video/mp4 [length] => 121 [length_formatted] => 2:01 [width] => 1920 [height] => 1080 [fileformat] => mp4 [dataformat] => quicktime [audio] => Array ( [dataformat] => mp4 [bitrate] => 62794 [codec] => ISO/IEC 14496-3 AAC [sample_rate] => 44100 [channels] => 2 [bits_per_sample] => 16 [lossless] => [channelmode] => stereo [compression_ratio] => 0.044496882086168 ) [created_timestamp] => -2082844800 )