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

2022-11-24 12:47:11 +08:00
 unt

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

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

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

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

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

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

https://www.v2ex.com/t/897565

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

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

© 2021 V2EX