请高手指点,数据库连接打开以后,连续执行几个操作以后再关闭,和执行一次操作就关闭,然后执行第下一次操作有什么区别,哪一个性能更好呢?
例如:
方案一:
     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();
方案一和方案二到底哪一个效率更高,性能更好呢? 请各位高手指教,并给出理由,谢谢。

解决方案 »

  1.   

    肯定是第一个效率高的。
    从最简单的来说,连接数据库是要有时间的,多次的连接效率肯定慢。
    而且要是是远程数据库的话,你这种不停的要求连接的语句会带宽占用时间也大。
    第二种方法应该是防止有的线程占线的,就是连接后有大段不需要连数据库的逻辑执行的程序,但像楼主这样写的连续执行sql的都不用多说了,肯定是第一个好。
    第二种是用时间作代价来防止占线的。
      

  2.   

    正在使用中的mysql连接是不会超时的,我不知道你的“许多框架的设计不用手动打开连接和关闭连接”什么意思我用java,.net,delphi连数据库都是要连接的,所谓的不用手动连接只是某些控件已经帮你连了。mysql的连接超时是可以自己设置的,我记得是设置timeout的属性,你可以设成不超时。但是在一般情况下不会超时的。那些设计不关闭连接的程序应该是会长时间占用mysql的线程的,对于很多用户访问数据库的程序不适用。