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

为什么 navicat 连接某个 mysql 库很慢,程序中连接很快

  •  
  •   unt · 15 天前 · 2903 次点击

    情况是这样,有个 mysql 连接,我们用 navicat 打开它其中某个库的随便一张表,很慢很慢,转圈转很久,成功打开一个表后,再打开其他表就很快了,同事们都有这个问题。

    打开其他链接库的时候很快,秒开。

    然后在后端程序中做 CURD ,连接都很快,没有问题。

    看了数据库配置,最大连接数好像也没问题。

    15 条回复    2022-11-25 09:58:18 +08:00
    chenzixue
        1
    chenzixue  
       15 天前   ❤️ 3
    编辑连接->高级->勾选保持连接间隔 30s 差不多就可以了
    wps353
        2
    wps353  
       15 天前 via Android
    这个库的表多么?
    unt
        3
    unt  
    OP
       15 天前
    @wps353 #2 不多,75 张表
    @chenzixue #1 好像有效,但是我其他 mysql 连接也没设置这东西呀
    cheneydog
        4
    cheneydog  
       15 天前
    我好像也有遇到过
    superrichman
        5
    superrichman  
       15 天前
    dns 解析卡住了,把 dns 解析相关配置关掉
    yuyang3
        6
    yuyang3  
       15 天前
    @unt 编辑连接->高级->勾选保持连接间隔 30s 差不多就可以了
    bthulu
        7
    bthulu  
       15 天前
    你们公司的傻叉运维设置了 xx 秒不活动的 tcp 连接直接杀掉
    totoro52
        8
    totoro52  
       14 天前
    mysql 主动断开连接了,需要重新链接肯定慢
    ksc010
        9
    ksc010  
       14 天前
    这类软件 一般首次链接的时候会做一些数据库信息方面的查询 就很耗时
    xyl5869
        10
    xyl5869  
       14 天前
    @bthulu 如果不释放空闲链接,当负载高的时候就麻烦了
    JohnBull
        11
    JohnBull  
       14 天前
    看上去像是 DNS 的问题
    qqpkat2
        12
    qqpkat2  
       14 天前
    @chenzixue 一楼正解,其他都在不懂装懂
    bthulu
        13
    bthulu  
       14 天前
    @xyl5869 问题其实出在防火墙切断空闲连接时, 并不会通知连接的两端, 导致 navicat 以为连接是正常的, 导致查询超时.
    我在想防火墙切断空闲连接的时候, 能不能模拟正常关闭 tcp 连接, 给连接的两端发送关闭通知, 这样就不存在这个问题了.
    jellyspot
        14
    jellyspot  
       14 天前
    说啥都是猜,抓包看下最靠谱
    lap510200
        15
    lap510200  
       14 天前
    没选择心跳连接吧 长时间不用就断了
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2879 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 11:28 · PVG 19:28 · LAX 03:28 · JFK 06:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.