首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有可能防止MySQL查询出错并使您的站点瘫痪?

有没有可能防止MySQL查询出错并使您的站点瘫痪?
EN

Stack Overflow用户
提问于 2012-01-11 06:54:18
回答 1查看 153关注 0票数 0

有没有可能配置MySQL,使其具有类似于PHP的最大执行时间的某种执行限制,以便如果查询花费的时间超过-比如说- 30秒,它就会自动终止?

我刚刚在phpMyAdmin上运行了一个写得很差的查询作为测试,它消耗了所有的CPU并且杀死了我的站点大约15 minutes...had来重启MySQL来恢复我的站点。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-11 07:14:49

MySQL没有这样的时间限制功能。一些选项是,你可以在my.conf中修改你的hit_counter变量或join_table大小,甚至不允许持久连接。但要真正获得您想要的功能,您必须编写自己的轮询守护进程来检查MySQL,并确保没有任何问题。

StackOverflow上的用户PHP自愿使用下面的PHP脚本来完成这项工作--尽管您可以用任何其他脚本语言编写它。让您的crontab频繁执行它(大约每分钟执行一次)。

代码语言:javascript
复制
$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);
  }
}

请在此处查看相关答案的其余部分:Anyway to Limit MySQL Query Execution time?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8811787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档