数据库连接池简介

什么是连接池

数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。

为何使用连接池

传统连接每次操作数据库都打开一个物理连接,使用完都关闭连接,这样造成系统的性能低下。

而连接池第一次访问的时候,需要建立连接。 但是之后的访问,均会复用之前创建的连接,直接执行SQL语句。该策略保证了数据库连接的有效复用,避免频繁的建立、释放连接所带来的系统资源开销。

连接池的工作原理

连接池的工作原理主要由三部分组成,分别为连接池的建立、连接池中连接的使用管理、连接池的关闭。

1.连接池的建立。一般在系统初始化时,连接池会根据系统配置建立,并在池中创建了几个连接对象,以便使用时能从连接池中获取。

2.连接池的管理。连接池管理策略是连接池机制的核心,连接池内连接的分配和释放对系统的性能有很大的影响。其管理策略是:

  • 当客户请求数据库连接时,首先查看连接池中是否有空闲连接,如果存在空闲连接,则将连接分配给客户使用;如果没有空闲连接,则查看当前所开的连接数是否已经达到最大连接数,如果没达到就重新创建一个连接给请求的客户;如果达到就按设定的最大等待时间进行等待,如果超出最大等待时间,则抛出异常给客户。

  • 当客户释放数据库连接时,先判断该连接的引用次数是否超过了规定值,如果超过就从连接池中删除该连接,否则保留为其他客户服务。

3.连接池的关闭。当应用程序退出时,关闭连接池中所有的连接,释放连接池相关的资源,该过程正好与创建相反。

连接池主要配置参数

最小连接数:是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不 大,将会有大量的数据库连接资源被浪费. ​

最大连接数:是连接池能申请的最大连接数,如果数据库连接请求超过次数,后面的数据库连 接请求将被加入到等待队列中,这会影响以后的数据库操作 ​

最大存活时间 ​

获取连接超时时间超时 ​

重试连接次数 ​

定时验证对象是否可用以及保持最小连接的间隔时间

参考

mysql,redis连接池

https://blog.csdn.net/crankz/article/details/82874158

https://blog.csdn.net/u011596455/article/details/82768883

Easyswoole连接池组件

https://www.easyswoole.com/Cn/Components/Component/pool.html

redis-pool

https://www.easyswoole.com/Cn/Components/redisPool.html

Mysql-pool

https://www.easyswoole.com/Cn/Components/mysqlPool.html

你可能感兴趣的:(mysql)