为什么我们需要 JDBC 的连接池?[已关闭]
2022-09-02 04:39:43
从 Jon Skeet 对连接和语句池的好处是什么?的回答:
创建与数据库服务器的网络连接(相对而言)成本高昂。同样,要求服务器准备SQL语句(相对)昂贵。
使用连接/语句池,您可以重用现有的连接/预准备语句,避免启动连接、解析 SQL 等的成本。
我不熟悉c3p0,但池化连接和语句的好处包括:
性能。连接到数据库既昂贵又缓慢。池连接可以保持与数据库的物理连接,并在需要数据库访问的各种组件之间共享。这样,连接成本只需支付一次,即可在所有消耗组件中摊销。
诊断。如果有一个子系统负责连接到数据库,则诊断和分析数据库连接使用情况将变得更加容易。
可维护性。同样,如果您有一个子系统负责分发数据库连接,则与连接到数据库本身的每个组件相比,您的代码将更容易维护。
创建连接成本高昂,并且为每个事务创建新连接(可能只需要几毫秒)是没有意义的。管理池中的数据库连接意味着应用程序可以避免连接创建时间的方式执行数据库事务(仍然需要创建连接,但它们都是在启动时创建的)。缺点是,如果所有连接都在使用中,并且需要另一个连接,则请求线程必须等到连接返回到池。