如果太长,请停止mysql查询

时间:2010-04-10 12:22:02

标签: mysql

如果可能的话,如何自动中断mysql中的长查询? 我理解,我需要优化查询而不是。但现在我只能访问数据库服务器了。

4 个答案:

答案 0 :(得分:1)

据我所知,一旦执行了查询,就无法停止查询。

  

我明白,我需要优化   查询而不是。

这就是你应该去的方式。

其他可能性:

如果适用,您可能需要查看 SQL Transactions

答案 1 :(得分:1)

在优化查询时,您可以通过killing the corresponding thread打断它们。

答案 2 :(得分:0)

mysql中没有办法限制查询运行多长时间然后超时。有“长查询杀手”脚本捕获杀戮并通过例如报告错误查询。看SHOW FULL PROCESSLIST时间属性。您可以通过存储过程来执行此操作,并在计划的时间或通过计划连接到mysql的应用程序调用它。

答案 3 :(得分:0)

尝试终止查询处理时间:

   $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);
        }
    }