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

2022 年 11 月 24 日
 unt

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

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

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

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

4181 次点击
所在节点    程序员
15 条回复
chenzixue
2022 年 11 月 24 日
编辑连接->高级->勾选保持连接间隔 30s 差不多就可以了
wps353
2022 年 11 月 24 日
这个库的表多么?
unt
2022 年 11 月 24 日
@wps353 #2 不多,75 张表
@chenzixue #1 好像有效,但是我其他 mysql 连接也没设置这东西呀
cheneydog
2022 年 11 月 24 日
我好像也有遇到过
superrichman
2022 年 11 月 24 日
dns 解析卡住了,把 dns 解析相关配置关掉
yuyang3
2022 年 11 月 24 日
@unt 编辑连接->高级->勾选保持连接间隔 30s 差不多就可以了
bthulu
2022 年 11 月 24 日
你们公司的傻叉运维设置了 xx 秒不活动的 tcp 连接直接杀掉
MIUIOS
2022 年 11 月 24 日
mysql 主动断开连接了,需要重新链接肯定慢
ksc010
2022 年 11 月 24 日
这类软件 一般首次链接的时候会做一些数据库信息方面的查询 就很耗时
xyl5869
2022 年 11 月 24 日
@bthulu 如果不释放空闲链接,当负载高的时候就麻烦了
JohnBull
2022 年 11 月 24 日
看上去像是 DNS 的问题
qqpkat2
2022 年 11 月 25 日
@chenzixue 一楼正解,其他都在不懂装懂
bthulu
2022 年 11 月 25 日
@xyl5869 问题其实出在防火墙切断空闲连接时, 并不会通知连接的两端, 导致 navicat 以为连接是正常的, 导致查询超时.
我在想防火墙切断空闲连接的时候, 能不能模拟正常关闭 tcp 连接, 给连接的两端发送关闭通知, 这样就不存在这个问题了.
jellyspot
2022 年 11 月 25 日
说啥都是猜,抓包看下最靠谱
lap510200
2022 年 11 月 25 日
没选择心跳连接吧 长时间不用就断了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/897565

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX