【问题标题】:Change time execution limit更改时间执行限制
【发布时间】:2019-07-02 16:03:09
【问题描述】:

如何更改 30'' 以上查询的执行时间限制?

如果我尝试

SET MAX_EXECUTION_TIME = 3600

我收到了

错误 1193“未知系统变量 MAX_EXECUTION_TIME”

我正在使用 MySQLWorkbench 和 mysql 版本 5.6.36

【问题讨论】:

    标签: mysql


    【解决方案1】:

    如果您运行的是 MySQL 5.7.8 或更高版本,则可以使用

    SET SESSION MAX_EXECUTION_TIME = 3600
    

    为会话设置它,或者

    SET GLOBAL MAX_EXECUTION_TIME = 3600
    

    全局设置。请注意,此功能最初是在 MySQL 5.7.4 中作为max_statement_time 引入的;在 5.7.8 中名称已更改为 max_execution_time

    【讨论】:

    • 你的MySQL是哪个版本的,这个是5.7.8才引入的
    • 我正在使用 MySQLWorkbench 8.0
    • 不是 Workbench 版本,是 MySQL 服务器版本
    • 如果你这样做SELECT @@version会得到什么?
    • 啊,我看到 5.6.36-log 谢谢你的建议。以前的版本有解决方法吗?
    【解决方案2】:

    如果您有 MySQL 5.7 或更高版本,此参数 MAX_EXECUTION_TIME 用于长时间运行的查询。

    首先通过运行此查询检查当前值

    > SELECT @@GLOBAL.MAX_EXECUTION_TIME @@SESSION.MAX_EXECUTION_TIME;
    

    然后根据自己的需要进行设置。

    > SET SESSION MAX_EXECUTION_TIME=3600;
    > SET GLOBAL MAX_EXECUTION_TIME=3600;
    

    【讨论】:

    • 我收到错误 1193 12:12:05 SELECT @@GLOBAL.MAX_EXECUTION_TIME @@SESSION.MAX_EXECUTION_TIME 错误代码:1193。未知系统变量 'MAX_EXECUTION_TIME' 0.0087 秒
    • 看这里,也许你需要创建一个存储过程stackoverflow.com/questions/54005466/… 或者有一个cron 工作stackoverflow.com/questions/4794747/… 或者你可以升级到MySQL 5.7
    • 在我的情况下它不起作用,当我使用 root 用户运行它时发生错误:[42000][1227] 访问被拒绝;您需要(至少其中一项)超级权限才能执行此操作
    【解决方案3】:

    您可以尝试在查询级别设置它,例如

    SELECT +MAX_EXECUTION_TIME(3600) * FROM T
    

    MAX_EXECUTION_TIME(N) 应用于只读选择语句。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-26
      • 2012-05-04
      • 2018-08-26
      • 2011-08-29
      • 2011-01-09
      • 1970-01-01
      • 1970-01-01
      • 2011-12-26
      相关资源
      最近更新 更多