众所周知,普通的数据库连接,1,每次请求都要建立一次数据库的连接
2,每次数据库连接,使用完后都得断开
3,不能控制被连接的对象数;
频繁的数据库连接,操作势必占用很多的系统资源,响应速度必定下降,程序出现异常而未能关闭,将会导致数据库系统中的内存泄漏,
最终将不得不重启数据库,系统资源被毫无顾忌的分配出去,如连接过多,也可能导致内存泄漏服务器崩溃;
连接池的原理:为数据库连接建立一个“缓冲池”,预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个。
使用完毕后,再放回去,通过设定连接的最大连接数来防止系统无休止的数据库连接,更为重要的是可以通过连接池的管理机制
监视数据库的连接的数量,使用情况,为系统开发,测试及性能调整提供数据。
连接池工作流程:如果没有空闲的连接,则检查当前所开连接有没有达到多允许的最大连接数(MAXCONN)如果没有达到,就新建一个连接,
如果已经达到,就等待一定时间(timeout)如果的等待的时间,有连接被释放出来,就可以把这个连接分配给等待的用户
如果等待时间超过了预定时间tomeout,则返回空值,