Как удалить спящий процесс в Mysql - PullRequest
3 голосов
/ 17 февраля 2011

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

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

это возможно, чтобы удалить эту вещьв mysql скажите мне, как я могу сделать следующее

соединение, позволяющее только один раз открыть и обработать datareader'ом соединение [process] после предоставления ответа на запрос.

Ответы [ 3 ]

6 голосов
/ 17 февраля 2011

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

Это уменьшает много накладных расходов на создание потоков по запросу, и это ничегобеспокоиться о.Спящий поток использует около 256 КБ памяти.

5 голосов
/ 08 ноября 2013

Если вы хотите сделать это вручную, вы можете сделать так:

войти в Mysql как администратор:

 mysql -uroot -ppassword;

И затем запустить команду:

mysql> show processlist;

Вы получите что-то вроде ниже:

+----+-------------+--------------------+----------+---------+------+-------+------------------+
| Id | User        | Host               | db       | Command | Time | State | Info             |
+----+-------------+--------------------+----------+---------+------+-------+------------------+
| 49 | application | 192.168.44.1:51718 | XXXXXXXX | Sleep   |  183 |       | NULL             ||
| 55 | application | 192.168.44.1:51769 | XXXXXXXX | Sleep   |  148 |       | NULL             |
| 56 | application | 192.168.44.1:51770 | XXXXXXXX | Sleep   |  148 |       | NULL             |
| 57 | application | 192.168.44.1:51771 | XXXXXXXX | Sleep   |  148 |       | NULL             |
| 58 | application | 192.168.44.1:51968 | XXXXXXXX | Sleep   |   11 |       | NULL             |
| 59 | root        | localhost          | NULL     | Query   |    0 | NULL  | show processlist |
+----+-------------+--------------------+----------+---------+------+-------+------------------+

Вы увидите полную информацию о различных соединениях.Теперь вы можете разорвать спящее соединение, как показано ниже:

mysql> kill 52;
Query OK, 0 rows affected (0.00 sec)
2 голосов
/ 17 февраля 2011

Вы можете найти весь рабочий процесс выполнения SQL:

show process;

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

kill processid

но на самом деле вы можете установить переменную тайм-аута в my.cnf:

wait_timeout=15
connect_timeout=10
interactive_timeout=100
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...