Как выявить медленные SQL запросы?
Это случалось с каждым из нас при разработке веб-сайтов или приложений, использующих MySQL в качестве базы данных. Производительность внезапно сильно падала, и вы не имели понятия, почему это случилось. Этому могут быть причиной многие факторы (сильная загрузка CPU, нехватка дискового пространства, или слабая пропускная способность канала), но также это может быть и неоптимизированный запрос, выполняемый намного дольше, чем должен.
Как узнать, какие из запросов выполняются дольше всего?
В MySQL есть встроенный функционал для ведения логов медленных запросов.
Для включения этого функционала необходимо произвести одно из действий:
- добавить следующие строки в
/etc/my.cnf
:log-slow-queries=/tmp/slow_queries.log
long_query_time=10 - вызвать
mysqld
со следующими параметрами:–log-slow-queries[=/tmp/slow_queries.log]
long_query_time
— это максимальное количество секунд, которое может выполняться запрос, прежде чем он будет записан в лог медленных запросов.
Другие связанные опции:
–log-slow-admin-statements
Записывать в лог медленные административные операторы такие, как OPTIMIZE TABLE
, ANALYZE TABLE
, и ALTER TABLE
.
–log-queries-not-using-indexes
Если вы используете эту опцию вместе с –log-slow-queries
, запросы, которые не используют индексы, будут записываться в лог медленных запросов.
Если ведение лога медленных запросов было успешно включено, вы увидите «ON
» в столбце «Value
» для строки «log_slow_queries
» (как показано на рисунке выше).
Примечание: кэшированные запросы не будут записываться в лог. Также не будут записываться запросы, в которых индекс не приносит пользы из-за того, что в таблице ноль или одна запись.
Вы можете столкнуться с ситуацией, когда запрос выполняется медленно только при определенных условиях (когда вы записываете его в лог), но при ручном запуске запрос отрабатывает нормально:
- Таблица может быть заблокирована (locked), ставя, таким образом, запрос в очередь ожидания. В таком случае
lock_time
определяет, когда таблица будет разблокирована, и как долго будет обрабатываться запрос. - Данные и индексы не были занесены в кэш памяти. Это обычно случается, когда MySQL запускается в первый раз, или когда таблицы не были оптимизированы.
- Был запущен сторонний процесс, замедляющий работу диска.
- Сервер перегружен другими запросами в это время, и не хватает ресурсов CPU для эффективной работы.
Анализ лога
В составе MySQL есть утилита mysqldumpslow
— Perl-скрипт, который суммирует данные лога, и наглядно отображает, насколько часто исполняется каждый из медленных запросов.
Источник: habr.com


Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2023-05-19 » Как повысить конверсию в интернет-магазине: 17 способов
- 2023-05-19 » Тренды в веб-дизайне в 2023 году
- 2023-05-19 » Как подключиться к серверу по VNC
- 2023-02-27 » Грамотная структура страницы сайта — основные элементы и советы
- 2023-02-07 » Маркетинговые исследования
- 2023-02-01 » Вывод сайта из-под фильтров
- 2023-02-01 » Проработка воронки продаж в Интернете
- 2023-01-26 » Установка и настройка Call tracking и Email tracking
- 2022-11-09 » 12 работающих формул продающих текстов
- 2022-11-09 » Дизайн сайта как SEO фактор ранжирования в 2022. Неочевидные нюансы в дизайне
- 2022-09-06 » Яндекс выложил в опенсорс фреймворк для ускорения разработки мобильных приложений
- 2022-08-18 » Как я могу перенаправить и переписать свои URL-адреса с помощью файла .htaccess?
- 2022-08-01 » Яндекс выложил в опенсорс исходный код и документацию фреймворка userver
- 2022-07-29 » Как выявить медленные SQL запросы?
- 2022-07-29 » Читали мое письмо или нет? Как проверить с помощью php — Записки программиста
- 2022-07-26 » Я потратил 30 дней на анализ лучших кнопок призыва к действию, которые смог найти в Интернете
- 2022-06-29 » ТОП-15 актуальных трендов интернет-маркетинга для России: эксперт рассказал о тенденциях рынка в 2022 году
- 2022-06-21 » Почему «99 франков» — это не лучшая ценовая стратегия, и как теперь «рисовать» привлекательные цены
- 2022-06-16 » Пушкинская карта и Культура.РФ на Вашем сайте. Подключим к действующему сайту и(или) сделаем новый!
- 2022-05-18 » Анализ рынка интернет-маркетинга в РФ от Яндекс Дзен
- 2022-05-18 » Итоги развития рекламного рынка РФ за 2021 год по версии АКАР
- 2022-05-18 » Потребление мобильного трафика в Рунете достигло рекордных значений
- 2022-05-17 » Yappy, TenChat и другие. Обзор новых русских соцсетей и их возможностей
- 2022-05-17 » Реклама малого бизнеса. Разбор доступных каналов, инструментов аналитики и терминов
- 2022-05-16 » Зачем нужен счетчик Top@Mail.ru и как установить на сайт пиксель myTarget
- 2022-04-25 » Несмотря на отсутствие блокировки: в Youtube потеряли более 20% активных русскоязычных авторов
- 2022-04-25 » Чат-бот – что это такое
- 2022-04-19 » Комплексная услуга по разработке сайта или Интернет-магазина БЕСПЛАТНО!!!
- 2022-03-17 » Импорт большого дампа БД в OpenServer через консоль
- 2022-02-25 » Возможности и преимущества Google Analytics 4
Самое важное в каждом деле – пересилить момент, когда нам не хочется работать. И. Павлов |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.