mysql - 如何限制sql执行时间

标签 mysql sql

有些sql没写好。有时在应用程序中进行搜索会花费数小时。 当应用程序(可能是网站)提交长时间运行的查询时,我必须重新启动 mysql。 如何在数据库端限制 sql 查询的执行时间?

最佳答案

在长时间执行后自动终止 MySQL 中的查询:

  1. 创建一个存储过程为:

    DECLARE CURSOR cur1 FOR SELECT ID 
                        FROM INFORMATION_SCHEMA.PROCESSLIST 
                        WHERE COMMAND = 'Query' AND TIME > 120;
    

    然后在 curosr 的循环中执行:

    FETCH ID INTO @var_kill_id;
    KILL QUERY @var_kill_id;
    
  2. 创建EVENT FOR EVERY 5 SECONDS 并在其中调用上述过程。

注意:KILL QUERY 只是终止查询,MySQL 连接并没有中断。见here .

关于mysql - 如何限制sql执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11772854/

相关文章:

MySQL Integer比较速度(= vs <>)

mysql - 如何将ibeacon信息发布到服务器

sql - 通过 Shell 脚本从 Oracle DB 中提取 Insert 语句

PHP 函数不返回 TRUE

java.util.MissingResourceException : Can't find bundle for base name com. sun.org.apache.xerces.internal.impl.msg.SAXMessages,区域设置 en_US

php - Mysql限制删除检查

sql - 如何将 SQL Server RDS 备份导入 SQL Server Linux Docker 实例?

mysql - 在 Rails 中计算日期范围内每天记录数的有效方法,无需每天进行一次查询

mysql - 如何将sql Developer连接到XAMPP MYSQL服务器

SQL 数据库关系 : correct implementation of Junction Model in manyToMany relationship?