Возможен случай, когда на вашем сервере MySQL работает множество потоков. Среди этих потоков бездействующие могут вызвать ошибку на вашем сервере MySQL, если вы не можете просмотреть запущенные процессы и убить те, которые вам в данный момент не нужны.
MySQL — это реляционная СУБД, которая предлагает пользователям различные варианты вывода списка запущенных процессов. Мы объясним, как показать запущенные процессы MySQL.
Идентификация процессов MySQL
Если у вас есть база данных MySQL на вашем сервере, вам может потребоваться время от времени проверять ее состояние, чтобы узнать, насколько она загружена. Когда вы замечаете задержки или проблемы с различными запросами в вашей базе данных MySQL, это сигнализирует о том, что у вас могут быть избыточные и простаивающие потоки.
Следовательно, полезно понимать, какие потоки вызывают проблемы и как можно минимизировать нагрузку. С MySQL вы можете использовать различные параметры для анализа запущенных процессов. Мы обсудим два варианта, которые помогут показать процессы MySQL.
Способ 1: с помощью команды Show Processlist
Когда вы получаете доступ к MySQL из командной строки, вы можете использовать команду SHOW PROCESSLIST для отображения информации обо всех запущенных процессах на вашем сервере MySQL. При выполнении он дает серверу снимок различных соединений и их информацию, такую как состояние, время и т. д.
Ниже приведена команда для выполнения:
ПОКАЗАТЬ СПИСОК ПРОЦЕССОВ;Обратите внимание на различные столбцы вывода. Давайте кратко обсудим каждый:
- Идентификатор – Он отображает идентификатор запущенного процесса. В случае нескольких запущенных процессов каждый из них имеет свой уникальный идентификатор.
- Пользователь – Он представляет пользователя, связанного с конкретным потоком.
- Хозяин – Он показывает хост, к которому подключен конкретный клиент. Это имя хоста конкретного клиента, выпустившего оператор.
- БД – Если выбрана база данных для определенного потока, она отображается в столбце БД. Если он показывает NULL, база данных не выбрана.
- Команда – Он показывает команду, которая выполняется потоком.
- Время – Для конкретного потока в этом столбце указано, как долго поток находится в своем текущем состоянии.
- Состояние – Он показывает, в каком состоянии или событии участвует поток.
- Информация – Он показывает, какой оператор в данный момент выполняет поток.
В этом случае предыдущий вывод является результатом нашей команды SHOW PROCESSLIST. Результат отображается в виде таблицы. Предположим, вы хотите просмотреть те же результаты, но в вертикальном порядке. Вместо этого вы можете использовать следующую команду:
ПОКАЗАТЬ СПИСОК ПРОЦЕССОВ\G;При желании включите [FULL] в команду, чтобы убедиться, что вы не пропустите ни один запущенный процесс.
Способ 2: через параметр INFORMATION_SCHEMA.PROCESSLIST
MySQL имеет таблицу INFORMATION_SCHEMA.PROCESSLIST, содержащую список всех активных соединений, идущих на его сервер. Обращаясь к этой таблице, вы получаете подробную информацию обо всех этих активных соединениях, чтобы узнать их хост, идентификатор процесса, состояние, команду и т. д., которые аналогичны тому, что вы получаете с помощью команды SHOW PROCESSLIST.
Вот команда для выполнения:
ВЫБЕРИТЕ * ИЗ INFORMATION_SCHEMA.PROCESSLIST;Как только вы выполните команду, вы получите вывод, аналогичный приведенному ниже, который показывает все детали запущенных процессов MySQL:
Как убить запущенные процессы MySQL
Предположим, у вас есть проблема с запущенными процессами. Вы можете убить любой простаивающий процесс, чтобы сократить время загрузки вашего сервера и повысить эффективность. Первая задача — определить идентификатор конкретного потока. Мы дали два метода, чтобы найти идентификатор любого потока.
Получив идентификатор, вы можете выполнить команду «kill» со следующим синтаксисом:
KILL <идентификатор_процесса>;Как только вы выполните команду, вы получите успешный вывод, который показывает затронутую строку, и запрос отключится от сервера. Вот как вы убиваете процесс MySQL.
Заключение
MySQL предлагает два способа отображения запущенных процессов. Мы обсудили оба варианта, учитывая синтаксис и пример команды, чтобы помочь вам понять MySQL SHOW PROCESSLIST. Тем не менее, мы видели, как можно убить запущенный процесс. Надеюсь, теперь вы понимаете, как работает MySQL SHOW PROCESSLIST.