2011-02-07 3 views
1

Я хочу, чтобы мой PHP-код и мой сайт не использовали постоянные соединения.Понимание результата `SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST`

Я использую запрос SQL ниже, чтобы проверить, но я не совсем понимаю, вывод,

$sql = "SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST"; 
$items = $connection -> fetch_all($sql); 
print_r($items); 

Ниже выход,

Array 
(
    [0] => Array 
     (
      [ID] => 43 
      [USER] => root 
      [HOST] => localhost:52246 
      [DB] => xxx_2010 
      [COMMAND] => Query 
      [TIME] => 0 
      [STATE] => executing 
      [INFO] => SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST 
     ) 

    [1] => Array 
     (
      [ID] => 38 
      [USER] => root 
      [HOST] => localhost:52140 
      [DB] => 
      [COMMAND] => Sleep 
      [TIME] => 423 
      [STATE] => 
      [INFO] => 
     ) 

) 

, когда я нажал на другую страницу,

Array 
(
    [0] => Array 
     (
      [ID] => 44 
      [USER] => root 
      [HOST] => localhost:52301 
      [DB] => xxx_2010 
      [COMMAND] => Query 
      [TIME] => 0 
      [STATE] => executing 
      [INFO] => SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST 
     ) 

    [1] => Array 
     (
      [ID] => 38 
      [USER] => root 
      [HOST] => localhost:52140 
      [DB] => 
      [COMMAND] => Sleep 
      [TIME] => 1026 
      [STATE] => 
      [INFO] => 
     ) 

) 

Почему всегда выводятся два массива? Что это означает в Query/Sleep в [COMMAND]? в [STATE] он говорит, что executing в первом массиве стал пустым во втором массиве - означает ли это, что соединение db отключается после отправки страницы.

Также, [TIME] => 0 and [TIME] => 423 - что это значит?

Почему Есть несколько ключей отображаются разные значения, такие как [HOST] => localhost:52246, [HOST] => localhost:52140, [ID] => 43, [ID] => 38 и т.д.

Жаль, что я мог бы просто задавал тупые вопросы ...

Спасибо.

EDIT:

Теперь у меня есть это на выходе после закрытия PhpMyAdmin на моем браузере,

Array 
(
    [0] => Array 
     (
      [ID] => 59 
      [USER] => root 
      [HOST] => localhost:53195 
      [DB] => xxx_2010 
      [COMMAND] => Query 
      [TIME] => 0 
      [STATE] => executing 
      [INFO] => SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST 
     ) 

) 

Поэтому, когда я нажимаю вокруг на моем сайте, он всегда возвращает [STATE] => executing - это значит что мой сайт находится на постоянном подключении?

ответ

1

У вас есть одно соединение, открытое от пользователя root, который простаивает довольно долго (идентификатор тот же, а время сна довольно высокое). Что-то открыло и не закрыло его (возможно, закрытая связь с PHPMyAdmin или что-то в этом роде)

Приложение не использует одно и то же соединение (вы можете видеть из столбца ID). Что касается другого соединения, вы можете попробовать KILL Взять его и посмотреть, вернется ли он. Если этого не произойдет, я бы не стал слишком беспокоиться об этом.

Еще одна вещь, не используйте root для входа на сервер MySQL. Создайте пользователя с ограниченными правами и предоставите разрешение PROCESS. Но никогда не подключайтесь в качестве полноправного пользователя ...

+0

@ircmaxell: «У вас есть одно соединение от пользователя root, который простаивал довольно долго (идентификатор один и тот же, а время сна довольно высока). да, я заметил, что это [ID] => 38 Я не знаю, почему! – laukok

+0

@lauth: у вас есть соединение, открытое где угодно? Возможно, в командной строке? Вы пытались убить его?У вас есть доступ к командной строке на сервер (после чего вы можете проверить nmap, чтобы узнать, какой процесс открыт для этого порта) ... – ircmaxell

+0

@ircmaxell: «У вас есть соединение, открытое где угодно?» Я действительно не знаю! Я запустил этот запрос «SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST»; внутри индексной страницы моего сайта. так это должно быть причиной того, что одно соединение открыто от пользователя root? – laukok

0

MySQL Documentation дает довольно подробное объяснение всех этих полей

Государство «исполняющих» означает именно то, что он говорит (это ваш запрос), «Сон» означает, что поток ожидает новой команды от клиент

Смежные вопросы