Света — один из лучших в России специалистов по MySQL. Её многочисленные доклады, выступления хорошо знакомы всем участникам старейшей и авторитетнейшей конференции DevConf.
Рост. Большие нагрузки. Увеличение числа пользователей, просмотров, объёма данных.
Запросы к базе стали отрабатывать дольше?
Клиенты висят в списке процессов и чего-то ждут?
Сервер "завис"?
Что делать?
У MySQL есть инструменты, помогающие понять какие изменения приводят к потере производительности.
На мастер-классе я покажу, на основе личного опыта работы в технической поддержке, простые в использовании методы, позволяющие определить причины нежелательного поведения и их устранить. Я расскажу в каком порядке их удобно использовать, с чего начать и как углубиться в проблему, научу безопасно тестировать.
Мы рассмотрим такие темы как:
- Создание и использование тестового сервера
- Тонкости отладки медленных запросов
- Особенности систем блокировок
- Влияние оборудования и конфигурации на производительность
- Сбор данных с минимальной нагрузкой на сервер
Я расскажу про архитектуру MySQL сервера и специфику работу с разными его частями, такими как оптимизатор, табличные движки, системы блокировок.
Мы будем рассматривать как встроенные всегда доступные инструменты, так и утилиты командной строки, облегчающие работу. Отдельное внимание будет уделено возможностям отладки, появившимся в последних версиях.
Чему вы научитесь?
- Тестировать безопасно. Я расскажу как создавать тестовый сервер, максимально имитирующий используемый в реальных условиях, а также как тестировать непосредственно на рабочем сервере; в условиях, когда создание тестового невозможно.
- Отлаживать медленные запросы при помощи традиционных и современных инструментов EXPLAIN FORMAT=JSON, Performance Schema, Optimizer Trace.
- Находить причины, из-за которых транзакции блокируют друг друга.
- Понимать, как MySQL Server взаимодействует с оборудованием, почему проседает производительность. Отдельный раздел "Настройки" будет посвящён тому, как получить максимум производительности на имеющемся оборудовании.
- Расставлять приоритеты. Некоторые опции улучшают производительность за счёт снижения надёжности. Я буду обращать внимание слушателей на такие вещи.