renran421 发表于 2017-4-7 10:46:39

PHP Kill数据库中Sleep的进程

<title>Kill All Sleep Threads</title>
<?php
/*
* author skipify
*/
$con = mysql_connect("localhost","root","") or die("can not connect database server");
$sql = "show processlist";
$query = mysql_query($sql);
$cv =0;//init 0
$str = "<table border='1'>\n";
$str .= "<tr>\n";
$str .= "<td width='60'>ID</td>\n";
$str .= "<td width='120'>用户名</td>\n";
$str .= "<td width='120'>主机</td>\n";
$str .= "<td width='240'>数据库</td>\n";
$str .= "</tr>\n";
while($r = mysql_fetch_array($query)){
#print_r($r);
if($r["Command"]=="Sleep"){
mysql_query("kill ".$r["Id"]);
$cv++;
//foreach($r as $k=>$v){
//echo "$k...$v\t\t||\t\t";
//}
//echo "<br />";
$str .="<tr>\n";
$str .= "<td>".$r['Id']."</td>\n";
$str .= "<td>".$r['User']."</td>\n";
$str .= "<td>".$r['Host']."</td>\n";
$str .= "<td>".$r['db']."</td>\n";
$str .="</tr>\n";
}
}
$str .= "</table>\n";
echo $str;
echo "<b>You have killed ".$cv." Thread(s)!</b>";
mysql_close($con);
?>


杀掉因为某些原因产生的sleep的mysql线程,可以加入任务计划定时执行,不过还是要优化好程序本身。
页: [1]
查看完整版本: PHP Kill数据库中Sleep的进程