Журналы медленных запросов MySQL: подробное руководство

Опубликовано: 2023-08-01
Распространять любовь

Эта статья представляет собой краткий, но всеобъемлющий ресурс, предназначенный для обеспечения четкого понимания журналов медленных запросов MySQL и способов их эффективной интерпретации. Это руководство призвано разобраться в сложностях, связанных с журналами медленных запросов, и помочь пользователям выявить и устранить узкие места в производительности и потенциальные проблемы с базой данных.

Включение журнала медленных запросов для MySQL оказывается ценным средством диагностики проблем с производительностью и эффективностью, которые могут повлиять на ваш сервер. Выявляя запросы с заметно медленным временем выполнения, вы получаете возможность эффективно решать их, реструктурируя приложение, ответственное за запросы, или оптимизируя сами запросы. Этот упреждающий подход гарантирует, что ваши запросы создаются с оптимальной эффективностью, что в конечном итоге приводит к повышению общей производительности системы.

Оглавление

Введение в MySQL

MySQL — одна из самых популярных систем управления реляционными базами данных с открытым исходным кодом, широко используемая для хранения, управления и извлечения данных для различных веб-приложений и программного обеспечения. Как и любая сложная система баз данных, MySQL предоставляет надежный механизм регистрации для записи важной информации о своей деятельности и производительности. Эти журналы играют решающую роль в мониторинге и устранении неполадок в поведении базы данных и могут предоставить ценную информацию о работоспособности и эффективности системы.

Типы журналов, генерируемых MySQL

Существует несколько типов журналов, генерируемых MySQL, каждый из которых служит определенной цели:

  1. Общий журнал запросов : в этот журнал записывается каждый SQL-запрос, выполненный на сервере, независимо от его источника. Это мощный инструмент для отладки и понимания последовательности выполняемых запросов, но он также может генерировать огромное количество данных, что делает его пригодным в основном для краткосрочной диагностики.
  2. Журнал ошибок: Журнал ошибок регистрирует любые ошибки, возникшие во время работы сервера MySQL. Эти ошибки могут включать проблемы с запуском, завершением работы или другие критические ошибки, которые могут повлиять на функциональность базы данных. Мониторинг журнала ошибок помогает администраторам быстро выявлять и устранять потенциальные проблемы.
  3. Журнал медленных запросов: как упоминалось ранее, журнал медленных запросов записывает запросы, выполнение которых занимает больше времени, чем предопределенный порог. Этот журнал помогает выявлять узкие места в производительности и неэффективные запросы, позволяя администраторам оптимизировать и повышать общую производительность базы данных.
  4. Двоичный журнал: Двоичный журнал содержит записи обо всех изменениях данных (вставках, обновлениях и удалениях), внесенных в базу данных. Он используется для целей репликации, позволяя синхронизировать данные между несколькими серверами MySQL.
  5. Журнал ретрансляции: Журнал ретрансляции специфичен для репликации MySQL. Он хранит данные, полученные от главного сервера, до того, как они будут выполнены на подчиненном сервере в настройке репликации.

Как активировать журнал медленных запросов MySQL?

Ниже приведены шаги для активации журнала медленных запросов для MySQL или MariaDB.

  1. Во-первых, вам нужно войти в SSH, используя Bitwise. Откройте побитовый SSH-клиент. Укажите сведения о своем хосте, порте и имени пользователя, затем выберите пароль в раскрывающемся списке «Исходный метод» и продолжите, нажав кнопку входа. Появится всплывающее окно с предложением ввести пароль SSH. Введите пароль SSH в соответствующее поле.
Войдите в SSH, используя Bitwise
Журналы медленных запросов MySQL: подробное руководство

2. Откройте файл /etc/mysql/my.cnf с помощью текстового редактора. Для этого сначала перейдите в новое окно SFTP из клиента Bitwise SSH.

Перейдите в новое окно SFTP из клиента Bitwise SSH.

Теперь введите /etc в строке поиска удаленных файлов и нажмите клавишу ввода.

Активировать журнал медленных запросов MySQL

Откройте файл mysql или MariaDB.

Активировать журнал медленных запросов MySQL

Теперь выберите my.cnf, щелкните правой кнопкой мыши и выберите «Изменить».

Активировать журнал медленных запросов MySQL

Появится текстовый редактор. Скопируйте следующие команды, вставьте их в конец файла и сохраните.

 slow_query_log = 1 slow-query_log_file = /var/log/mysql-slow.log long_query_time = 2

3. Теперь откройте терминал Bitwise и выполните следующие команды, чтобы сгенерировать файл /var/log/mysql-slow.log и назначить пользователя mysql его владельцем.

 touch /var/log/mysql-slow.log chown mysql:mysql /var/log/mysql-slow.log

4. Чтобы перезапустить MySQL или MariaDB, выполните следующую команду.

 /usr/local/cpanel/scripts/restartsrv_mysql

Чтение журнала медленных запросов MySQL

Получите доступ к файлу, содержащему журналы медленных запросов, используя:

/var/журнал/mysql/mysql-slow.log

В файле журнала каждый медленный запрос регистрируется как запись. Эти записи обычно содержат такие сведения, как метка времени, время выполнения запроса, количество проверенных строк и фактический оператор SQL.

Вместо того, чтобы напрямую читать журнал медленных запросов, часто бывает выгоднее использовать команду mysqldumpslow для разбора и суммирования содержимого журнала. Вы можете выполнить команду, войдя в систему как пользователь root через SSH, следующим образом:

sudo -i mysqldumpslow /var/log/mysql/mysql-slow.log

Ниже будет получен вывод:

Чтение журнала медленных запросов MySQL

Часто задаваемые вопросы

Какова цель команды mysqldumpslow?

Команда mysqldumpslow служит для разбора и обобщения содержимого журнала медленных запросов MySQL. Он позволяет извлекать ценную информацию из файла журнала, включая сведения о наиболее часто встречающихся медленных запросах и соответствующем времени их выполнения. Выполняя mysqldumpslow /var/log/mysql/mysql-slow.log , вы можете эффективно анализировать и получать информацию из медленных запросов эффективным способом.

Могу ли я использовать журнал медленных запросов для долгосрочного мониторинга?

Хотя журнал медленных запросов полезен для краткосрочной диагностики, включение его в течение длительного времени может привести к созданию значительного объема данных. Чтобы облегчить долгосрочный мониторинг, рекомендуется изучить альтернативные подходы, такие как использование инструментов мониторинга и решений для анализа производительности. Это помогает предотвратить переполнение журнала чрезмерными записями и обеспечивает эффективное управление производительностью базы данных с течением времени.

Как журнал медленных запросов может помочь в диагностике проблем с производительностью базы данных?

Журнал медленных запросов играет жизненно важную роль в диагностике проблем с производительностью базы данных, поскольку он определяет запросы с медленным временем выполнения. Анализируя эти медленные запросы, администраторы могут точно определить узкие места в производительности и неэффективность базы данных. Вооружившись этой информацией, они могут приступить к оптимизации запросов, реструктуризации приложений или внесению существенных изменений для значительного повышения общей производительности системы.

Как оптимизировать запросы на основе информации из журнала медленных запросов?

После выявления медленных запросов из журнала у вас есть возможность оптимизировать их различными способами. Это включает в себя добавление подходящих индексов, переписывание запросов или реструктуризацию схемы базы данных. Кроме того, использование методов оптимизации запросов, таких как EXPLAIN и профилирование, может предоставить ценную информацию и способствовать значительному повышению производительности запросов.

Журнал медленных запросов применим только для MySQL или его можно использовать с другими системами баз данных?

Журнал медленных запросов предназначен исключительно для систем баз данных MySQL и MariaDB. Хотя другие системы управления базами данных могут предлагать сопоставимые функции, важно отметить, что формат журнала и методы активации могут различаться в разных системах.