如何提升Odbc连接mysql数据库的效率

你胖起来真好看 2011-08-04 09:49:56
跟各位探讨一下,我现在有个c#的程序,客户端通过odbc连接远端的mysql数据库。现在的做法是,
在登陆程序时,就打开一个odbc连接远端数据库,程序中有个timer,每当检测到odbc的连接断开时,就重新连接。
现在的问题是:
1、登陆时,才连接odbc,这个连接过程需要20s,太慢;
2、每次打开程序之后,如果中间odbc曾断开,且现在刚好在重新尝试连接,那么此时刚好要读取数据库,
也需等待新连接的20s

不知道各位有什么高招,能帮我提升下这个速度,不知道这个odbc的连接是否可以做成N个后台连接的程序,
在主程序需要登陆时,就直接从该程序中,使用一个已连接的odbc?

备注:通过控制面板中的odbc连接测试,连到远程mysql数据库的速度也是20s
...全文
436 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
iihero 2011-08-06
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 megglove 的回复:]

引用 8 楼 acmain_chm 的回复:

换个最新版本的ODBC驱动。低版本有时会有这问题。

等会儿试下,我昨天发现,直接在控制面板中的,通过odbc数据源,测试系统DSN中,
连接到远程服务器,都需要25s
[/Quote]

这个......

看看有没有保持长连接.....应该可以设置timeout以保持长连接。
nicenight 2011-08-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 megglove 的回复:]

不等连接断开,每隔一定时间使用一次连接===》 呵呵 不太明白,已连接的情况下,还能再连接吗?
[/Quote]

是说空闲的连接可能一段时间会断开,所以程序里每隔一段时间做一个简单的查询,使得连接不再空闲。
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 acmain_chm 的回复:]

换个最新版本的ODBC驱动。低版本有时会有这问题。
[/Quote]
等会儿试下,我昨天发现,直接在控制面板中的,通过odbc数据源,测试系统DSN中,
连接到远程服务器,都需要25s
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 trainee 的回复:]

可能是远程的服务器,没有把names-lookup关掉
你客户端这边是没办法的.
[/Quote]

这个我还没用过,请问这句可以实现什么功能?
ACMAIN_CHM 2011-08-04
  • 打赏
  • 举报
回复
换个最新版本的ODBC驱动。低版本有时会有这问题。
  • 打赏
  • 举报
回复
不等连接断开,每隔一定时间使用一次连接===》 呵呵 不太明白,已连接的情况下,还能再连接吗?
nicenight 2011-08-04
  • 打赏
  • 举报
回复
或者你测试看看连接断开的时间是多久,不等连接断开,每隔一定时间使用一次连接,不让它空闲,这样就可以让连接一直保留。
  • 打赏
  • 举报
回复
嗯,但是远端服务器暂时没办法变,现在只能在客户端的连接方式上想办法了,odbc可以在后台运行的吗?
wwwwb 2011-08-04
  • 打赏
  • 举报
回复
mysql是远程主机?如果从ODBC中连接都要20S,估计问题出在远程主机上
  • 打赏
  • 举报
回复
MYSQL 5.0,odbc5.1.6,网速是3M左右,防火墙都关了的
wwwwb 2011-08-04
  • 打赏
  • 举报
回复
MYSQL什么版本,MYSQL ODBC什么版本,网络速度如何,有无防火墙
trainee 2011-08-04
  • 打赏
  • 举报
回复
可能是远程的服务器,没有把names-lookup关掉
你客户端这边是没办法的.

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧