› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
lxk11153
V2EX  ›  MySQL

一个耗时的 sql 执行后,不报错也不返回结果,就一直阻塞住,但 PROCESSLIST 里显示已结束

  •  
  •   lxk11153 · Jul 29, 2020 · 3881 views
    This topic created in 2249 days ago, the information mentioned may be changed or developed.
    > mysql -Au <user> -h <ip> -p
    Server version: 5.6.48-log Source distribution
    mysql> 一个耗时的 sql
    # 然后就没动静了,也不报错也不返回,阻塞着
    

    开另一个连接上去查SHOW FULL PROCESSLIST,可以看到 sql 在执行

    Command-Query, Info-那个 sql

    然后变到

    Command-Sleep, Info-NULL

    最后失去连接

    Supplement 1  ·  Jul 29, 2020
    用 `select sleep(400) from dual` 来调试,超过 300s 的就会阻塞,但不知是哪个变量控制的
    Supplement 2  ·  Jul 29, 2020
    "最后失去连接" 改为 "最后 PROCESSLIST 没有它了"
    6 replies  •  2020-07-29 14:18:07 +08:00
    lxk11153
        1
    lxk11153  
    OP
       Jul 29, 2020
    关联类似问题: mysql 查询 5000 条以上数据,不报错,但也不返回查询结果
    https://bbs.csdn.net/topics/390254471
    wangyanrui
        2
    wangyanrui  
       Jul 29, 2020
    远程调用的 DB 吗?机器之间的网络速度原因?
    adexbn
        3
    adexbn  
       Jul 29, 2020
    曾经遇到过如下情况:还可能是本地客户端死机了,后台已经返回,但是前端处理数据的时候 Crash 。不知道你的环境,供参考
    zhangysh1995
        4
    zhangysh1995  
       Jul 29, 2020
    EXPLAIN 那句看看
    lxk11153
        5
    lxk11153  
    OP
       Jul 29, 2020
    @zhangysh1995 #4 看 第 1 条附言 ,这个 sql 不用 EXPLAIN 了吧 [doge]
    wakzz
        6
    wakzz  
       Jul 29, 2020
    直接 tcpdump 抓一下 mysql 请求和响应报文,通过抓包报文分析一下 mysql 是否真的没有响应数据,怀疑是 mysql 返回数据后客户端处理出问题了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2597 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 14:54 · PVG 22:54 · LAX 07:54 · JFK 10:54
    ♥ Do have faith in what you're doing.