有人可以解释什么是连接和语句池以及与未池化的数据源相比有什么好处?我想了解何时在项目中使用c3p0或proxool等技术是个好主意.我首先需要了解他们做什么以及何时使用它们.非常感谢你.
每次创建新连接都很容易.一行:这就是全部.没有什么可考虑的.美好的生活.
每次使用后你都扔掉你的盘子吗?
不,你将它洗净并放在餐具架上,这样你就可以在下一餐时再次使用它.每次都要买新盘子是不可能的.如果你这样做,你将浪费足够的钱在一年内购买一台新iPad.
再考虑一下连接池.
但这一次,连接是你的盘子,连接池是你的碗架.您的钱包和能量代表系统资源(内存和带宽).
你还想做什么:
一个.洗碗
湾 或者每餐都去商场买新盘子?
虽然连接池中涉及任务,但从长远来看,与每次创建新连接相比,它的负担较少.关键在于了解您的家庭(应用程序)在任何一天需要多少板(连接).
池可用于数据库连接,线程,实体bean和其他工厂派生对象.
创建与数据库服务器的网络连接(相对)昂贵.同样要求服务器准备SQL语句(相对)昂贵.
使用连接/语句池,您可以重用现有的连接/预准备语句,避免启动连接,解析SQL等的成本.
我不熟悉c3p0,但汇集连接和语句的好处包括:
性能.连接到数据库既昂贵又缓慢.池化连接可以物理连接到数据库,并在需要数据库访问的各种组件之间共享.这样,连接成本支付一次,并在所有消费组件中摊销.
诊断.如果您有一个负责连接到数据库的子系统,则可以更轻松地诊断和分析数据库连接使用情况.
可维护性.同样,如果您有一个负责分发数据库连接的子系统,那么与每个组件连接到数据库本身相比,您的代码将更容易维护.