• 请不要在回答技术问题时复制粘贴 AI 生成的内容
unt
V2EX  ›  程序员

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

  •  
  •   unt · Nov 24, 2022 · 4535 views
    This topic created in 1441 days ago, the information mentioned may be changed or developed.

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

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

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

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

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