非常に遅い、たとえば 100 秒のクエリを自動的に強制終了またはタイムアウトするために、MySQL 側で実行できる構成はありますか。
質問する
11264 次
3 に答える
2
次のコマンドですべての MySQL クエリを一覧表示できます。
$ mysqladmin processlist
そのリストを解析するスクリプトを実行すると、特定のクエリが強制終了されます。
たとえば、cron を介して任意の言語でスクリプトを実行して、長いクエリを定期的にチェックできます。
$result = mysql_query("SHOW FULL PROCESSLIST");
while ($row=mysql_fetch_array($result)) {
$process_id=$row["Id"];
if ($row["Time"] > 200 ) {
$sql="KILL $process_id";
mysql_query($sql);
}
}
もう一つの例:
mysql> select concat('KILL ',id,';') from information_schema.processlist
where user='root' and time > 200 into outfile '/tmp/a.txt';
mysql> source /tmp/a.txt;
関連している:
続きを読む:
于 2014-01-23T13:11:59.520 に答える
0
percona ツールキットのコマンドpt-killをチェックアウトする必要があります
于 2012-12-13T09:18:04.743 に答える