1. 问题 在以往简单的数据库连接和释放资源过程中,每一次获取连接都是向操作系统底层申请连接资源。在申请资源的过程中需要大量的时间,还有可能因为冲突导致失败。不停的申请资源和释放资源,消耗了大量的时间和系统资源,导致程序运行速度变得缓慢。为了解决时间浪费和系统资源浪费,诞生了数据库连接池技术。 2. 连接池概述 1) 传统获取连接方式 要完成一个业务,就需要获取一次数据库连接然后释放一次数据库资源。 一整个复杂的业务完成,就需要完成TCP的连接、数据库的连接、SQL语句执行和返回结果、数据库关闭连接、TCP关闭连接多个步骤。 如果只是简单的本地任务和并发量不高的数据库RCUD,更容易实现的传统获取连接方式甚至可能会更好一些。 但是如果遇到复杂的网络业务和高并发,传统获取连接的方式带来的巨大的I/O消耗,显著造成数据库负载较高,因为频繁的申请资源和释放资源导致系统需要将性能浪费在处理申请请求和垃圾回收上,繁冗的步骤导致需要快速响应的业务反应较慢。 2) 连接池获取连接方式 为了解决频繁的申请资源和释放资源的问题,在程序初始化的时候,通过配置预先向系统申请了一定数量的数据库连接。当一个业务要执行的时候,从预先申请的连接池中拿取一个连接使用。当业务完成后,归还从连接池借用的连接就可以了。实现了可以复用的理念,增加连接的利用率