首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  PHP

PHP 怎么限制 mysql 的查询的执行时间

  •  
  •   jojojo · 105 天前 · 872 次点击
    这是一个创建于 105 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近发现调用 pdo 执行一条查询时间很长的 mysql 语句(假设 10 分钟)。当 php (假设 php 本身的最大执行时间 30s )执行结束之后,用 show processlist 检查,mysql 查询并没有结束。
    想问一下,有什么方法或者配置,可以使 php 执行结束之后,立刻停止 mysql 的执行呢
    6 回复  |  直到 2018-11-08 16:19:51 +08:00
        1
    Efraim   105 天前
        2
    yangqi   105 天前
    每次查询前
    SET SESSION MAX_EXECUTION_TIME=2000;
        3
    OMGZui   104 天前
    max_execution_time 可以设置 php 超时,默认 30 秒,设置 0 就是没有限制

    你是在浏览器运行 php 的嘛,在 cli 下就没有 30s 的限制了
        4
    jojojo   104 天前
    @Efraim 你这样对 mysql=本身也限制了执行时间,我需要的是对 php 查询限制时间,对 mysql 本身不做限制
        5
    jojojo   104 天前
    @yangqi 大佬这方法应该可行,但是我刚看了下,我用 docker 装的 mysql 下并没有这个 max_excution_time 或者 max_statement_time,这就很尴尬了
        6
    Evilk   104 天前   ♥ 1
    如果一条 SQL 需要 10 分钟,难道不应该首先从这里入手吗?
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1710 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 27ms · UTC 00:10 · PVG 08:10 · LAX 16:10 · JFK 19:10
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1