IT学习者 | 站长学院 | 技术文档 | 桌面壁纸 | 网络电台 | 成语 | 歇后语 | 周公解梦 | 生日密码 | 代码收藏 | 小游戏 | IP地址查询 | 北京时间 | 网速测试

mysql连接与关闭问题

【 来源:论坛 作者:佚名 更新时间:2008-06-09 | 字体:
请高手指点,数据库连接打开以后,连续执行几个操作以后再关闭,和执行一次操作就关闭,然后执行第下一次操作有什么区别,哪一个性能更好呢?
例如:
方案一:
mysql.open();
mysql.insert('sql1');
mysql.insert('sql2');

mysql.insert('sqln');
mysql.close();
方案二:
mysql.open();
mysql.insert('sql1');
mysql.close();
mysql.open();
mysql.insert('sql2');
mysql.close();

mysql.open();
mysql.insert('sqln');
mysql.close();
方案一和方案二到底哪一个效率更高,性能更好呢? 请各位高手指教,并给出理由,谢谢。
网友回复:mark帮顶,我自己感觉是第一种效率高一点,呵呵,没有理论基础,等待高手
网友回复:呵呵,其实经常碰到这样的情况,循环操作数据库,但是一直没有找到相关资料,介绍怎样使用更好,只好上来找找高手。


网友回复:肯定是第一个效率高的。
从最简单的来说,连接数据库是要有时间的,多次的连接效率肯定慢。
而且要是是远程数据库的话,你这种不停的要求连接的语句会带宽占用时间也大。


第二种方法应该是防止有的线程占线的,就是连接后有大段不需要连数据库的逻辑执行的程序,但像楼主这样写的连续执行sql的都不用多说了,肯定是第一个好。
第二种是用时间作代价来防止占线的。
网友回复:假如执行时间比较长的话,第一种会不会占用连接时间过长而导致超时呢?还有许多框架的设计不用手动打开连接和关闭连接,那是怎么设计的呢,感觉应该是第二种方案呢
网友回复:正在使用中的mysql连接是不会超时的,我不知道你的“许多框架的设计不用手动打开连接和关闭连接”什么意思我用java,.net,delphi连数据库都是要连接的,所谓的不用手动连接只是某些控件已经帮你连了。

mysql的连接超时是可以自己设置的,我记得是设置timeout的属性,你可以设成不超时。但是在一般情况下不会超时的。那些设计不关闭连接的程序应该是会长时间占用mysql的线程的,对于很多用户访问数据库的程序不适用。
网友回复:第一个高。

第一个相当于一个长连接。
就像憋了好久的尿,一下子全解决了
第二个连接太频繁。
就像一分钟去一趟厕所。
^_^

音乐
嫁衣 画心 叹服 我爱他 甩葱歌 琉璃月 最后一次 星月神话 烟花易冷 poker face 变心的玫瑰 i miss you 你是我的ok绷 要嫁就嫁灰太狼 你还欠我一个拥抱
火苗 落花 稻香 伽蓝雨 海豚音 爱上你 爱情买卖 灰色头像 好听的歌 没那么简单 等爱的玫瑰 左眼皮跳跳 丢了幸福的猪 斯琴高丽的伤心 有谁像我一样疼你
白狐 偏爱 犯错 错错错 走天涯 套马杆 狼的诱惑 爱是你我 郎的诱惑 我爱雨夜花 我要去西藏 超人不会飞 哥只是个传说 如果这就是爱情 不是因为寂寞才想你
传奇 王妃 心墙 全是爱 棉花糖 我相信 经典老歌 伤感歌曲 心痛2009 最炫民族风 我们都一样 新贵妃醉酒 贝多芬的悲伤 我们没有在一起 爱上你等于爱上了错
加入收藏留言建议ASP探针PHP探针站长Enjoy的BlogAboutDomain
© 2010 IT学习者 - itlearner.com
RunTime:3.42ms