我正在尝试使用连接池,但我不能正确理解它。谁实现了它?是软件、驱动程序还是数据库?
如何使用连接池运行我的程序?我使用的是本地PostgreSQL驱动程序。
我需要一个代码示例。我正在做一个网络爬虫,它有很多到数据库的连接。
发布于 2011-06-23 02:07:04
有几种可能性:
无论您选择哪个选项,原则上它总是以相同的方式工作:客户端维护一个到数据库的网络连接池。每次你使用DataSource请求新的连接时,连接池都会偷看免费的连接并提供给你。当您认为您正在关闭连接时,它实际上会被释放并放回到池中。其他线程现在可以使用相同的、已经建立的连接。
池化有很多优点:
,连接池应该拒绝返回连接
发布于 2011-06-23 02:20:54
池化本身由位于应用程序代码和数据库驱动程序之间的代码完成。
是谁把代码放在那里的?可能是任何人。这可能是你--有像DBCP这样的库,你的代码可以用来在数据库上放置一个池。它可以是像Tomcat或JBoss这样的J2EE容器。它甚至可能是数据库--正如Tomasz指出的那样,PostgreSQL提供了池化代码。
听起来您没有使用J2EE容器,在这种情况下,这取决于您或数据库。就我个人而言,我更喜欢专用的池化实现,比如DBCP,而不是数据库提供的实现。数据库的程序员最关心数据库;池的程序员最关心池。
因此,获得DBCP (IMHO,它比替代方案更好),并使用它。
发布于 2011-06-23 02:04:41
我认为您正在寻找在客户端完成的连接池,它建立到数据库的连接。基本思想是,建立新的连接是昂贵的,因为它涉及建立连接、建立DB侧对象、认证等,并且因此重用连接对象。
https://stackoverflow.com/questions/6444379
复制相似问题