怎么样连接数据库效率最好?

zhchsf 2010-04-02 08:04:11
编程时,有时需要频繁调用另外一个类中的方法,该方法每次都会连数据库并关闭,如果是个递归算法要重复连接关闭很多次,那如果那个类里不写关闭语句的话,会不会好点?可是不关闭连接也不好

不知道高手们都是怎么处理类似问题的?
...全文
77 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
codearts 2010-04-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhchsf 的回复:]
编程时,有时需要频繁调用另外一个类中的方法,该方法每次都会连数据库并关闭,如果是个递归算法要重复连接关闭很多次,那如果那个类里不写关闭语句的话,会不会好点?可是不关闭连接也不好

不知道高手们都是怎么处理类似问题的?
[/Quote]

说一说除却用连接池之外。

比如说,
class A{
private:
void init_connection();
void do_something();
void close_connection();
public:
void DoLargeLogical()
{
init_connection();
do_something();
close_connection();
}
};

为了性能,接口可以改成3个:把初始连接、关闭连接的方法改成public的

syq8088 2010-04-03
  • 打赏
  • 举报
回复
从tomcat/resin之类容器角度考虑,你这种连接数据库连接方式肯定是专用链接( 默认的)

从程序开发开发。比如java.感觉你还是 如果 用完了方法释放掉好。
因为:一个容器级别session是一个对应着一个服务器级别的server process。。不会因为你这个java类消失而消失,相反,你类消失/必要再创建后,会加大内存利用效率。。不能蹲着茅坑不拉屎呀!!
数据库服务器的内存还是蛮金贵的
kingstarer 2010-04-02
  • 打赏
  • 举报
回复
考虑一下连接池 估计能符合你的要求
iqlife 2010-04-02
  • 打赏
  • 举报
回复
看你服务器的压力可以承受力了
B/S结构的话,一般的话都是提交到连接池,WEB服务器上进行控制就可以了
C/S的话,一般建议长时间连接,网络稳定的话
kingstarer 2010-04-02
  • 打赏
  • 举报
回复
连接和释放会花比较长时间 可以考虑一下能否用上连接池
ACMAIN_CHM 2010-04-02
  • 打赏
  • 举报
回复
个类里不写关闭语句的话,会不会好点?
效率上会高,因为连接,关闭耗时比较高。


可是不关闭连接也不好
资源一直未释放,特别是如果网络有中断时,会导致程序出错,往往无法自恢复。


所以,哪种好并没有定论,视具体情况而决定应用哪种。
wangchangjian 2010-04-02
  • 打赏
  • 举报
回复
不知所云
dawugui 2010-04-02
  • 打赏
  • 举报
回复
看不懂需求,帮顶.

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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