php使用kill杀死mysql中sleep链接

大量sleep产生的原因从三点排查:
1.程序中,不使用持久链接,即使用mysql_connect而不是pconnect
2. 程序执行完毕,应该显式调用mysql_close
3. 数据库查询不够优化,过度耗时

<?php
define('MAX_SLEEP_TIME', 1000);

$hostname = "ip:port";
$username = "username";
$password = "password";

$connect = mysql_connect($hostname, $username, $password);
$result = mysql_query("SHOW PROCESSLIST", $connect);
while ($proc = mysql_fetch_assoc($result)) {
 if ($proc["Command"] == "Sleep" && $proc["Time"] > MAX_SLEEP_TIME) {
 @mysql_query("KILL " . $proc["Id"], $connect);
 }
}
mysql_close($connect);
?>
此条目发表在服务器分类目录,贴了标签。将固定链接加入收藏夹。

发表评论