2023:07:16数据库连接池
数据库连接池是个容器,负责分配,管理数据库连接对象(Connection)
它允许应用程序重复使用一个现有的数据库链接,而不是在重新建立一个
而且释放空闲时间超过最大空闲时间的链接,来避免因为没有释放链接而引起的数据库链接遗漏
没有数据库链接对象的情况:
在执行sql语句的时候首先会创建一个数据库链接对象,在sql语句执行完成之后会关闭链接对象来释放资源
这样每一次执行sql语句都需要循环往复这个过程比较浪费资源
具有数据库链接对象的情况:
程序在启动的时候会初始化一定数量的连接对象,客户端在准备执行sql语句的时候会从这里面选一个连接,然后执行sql语句,在sql语句执行完成后会把这个链接归还给连接池
如果客户端在拿到链接之后一链接一直处空闲状态(链接没有访问操作数据库),数据库链接池会检测这个链接的空闲时间一旦超过最大预设空闲时间,这个链接将会释放归还给连接池(避免了链接越用越少的情况)
综上诉述
连接池的优势
1.资源重用(复用链接)
2.提升系统响应速度(数据库连接池在初始化过程中,已经创建了若干数据库连接放于池内备用。此时连接池的初始化操作均已完成。对于客户端请求直接利用现有可用连接,避免了数据库连接初始化和释放过程的时间开销,从而缩减了系统整体响应时间。)
3.避免数据库链接遗漏(超过最大空闲时间将会被收回,避免常规数据库链接操作中可能出现的遗漏)
连接池的实现:
标准接口:DataSource
官方提供接口,第三方组织实现
常见的有Druid(念zhao ei de(德鲁伊) 还有Hikari(springboot默认 hei ka rei(追光者))
且切换连接池:
直接引入对应的依赖即可
总结。
连接池就是为了避免重复的创建数据库连接而造成的性能下降和资源的浪费
注意:
保存一定量的链接是要消耗内存的链接应该不会创建太多
有问题可在评论区指出(多谢指教)