数据库连接池需要关闭吗

在服务端,创建了一个DataSource之后,这个Datasource需要关闭吗?
之前用conn是用时申请,用完就close。
那这个Datasource是不是不用关闭,自动管理conn啊?

阅读 13.9k
6 个回答

DataSource 当然不需要关闭啦,你可以把它直接看做连接池,关闭了就要重新在创建一个连接池,代价很大的。

连接池的出现是为了避免建立数据库连接的重大开销。
访问数据库其实是进程间的通信,既然是进程间通信,在传输层走的肯定是tcp协议,建立一次连接的开销肯定是大于内存间获取连接的开销。

其实所有问题的优化都基本脱离不了:降,疏,缓,堵,调。连接池就对应了其中的缓字!

server 关闭的时候需要关闭

数据源创建代价很大的,应该当作应用全局的,应用启动时创建,应用停止是销毁,另外就是对连接的管理的,连接创建也是很耗资源的,在不考虑高并发,不考虑性能,也可以使用时创建,用完关闭,但最好用池化技术管理,这方面java做的很好,有很多开源的东西,对于php这种以请求位生命周期的语言很困难这么管理。

可以自己做个中间件来实现的

连接池当然不能关闭了,要是关闭的话连接怎么拿

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题