mysql连接与关闭问题
发布时间:2020-12-12 02:24:34 所属栏目:MySql教程 来源:网络整理
导读:请高手指点,数据库连接打开以后,连续执行几个操作以后再关闭,和执行一次操作就关闭,然后执行第下一次操作有什么区别,哪一个性能更好呢? 例如: 方案一: mysql.open(); mysql.insert('sql1'); mysql.insert('sql2'); : mysql.insert('sqln'); mysql.c
请高手指点,数据库连接打开以后,连续执行几个操作以后再关闭,和执行一次操作就关闭,然后执行第下一次操作有什么区别,哪一个性能更好呢? 例如: 方案一: 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的线程的,对于很多用户访问数据库的程序不适用。 网友回复:第一个高。 第一个相当于一个长连接。 就像憋了好久的尿,一下子全解决了 第二个连接太频繁。 就像一分钟去一趟厕所。 ^_^ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读