数据库连接池的原理
2017-03-06 16:03:04 0 举报
数据库连接池是一种在应用程序启动时创建一定数量的数据库连接,并将这些连接保存起来以供后续使用的机制。当应用程序需要访问数据库时,首先会去连接池中查找是否有空闲的连接可用。如果有,就从连接池中取出一个连接并使用;如果没有,就需要等待直到有空闲连接出现。使用完毕后,该连接会被归还给连接池,以供其他请求使用。通过这种方式,可以避免频繁地创建和销毁数据库连接,从而提高了系统的性能和可靠性。同时,由于多个请求可以共享同一个连接,也减少了资源浪费的情况发生。
作者其他创作
大纲/内容
10万个对象同时访问的话,数据库的连接就会被挂起,服务器超载
在使用JDBC时的情况
Connection
会创建出10万个Connection连接对象
\"initialPoolSize\"=6
关闭连接对象
创建Connection连接对象
十万个用户
数据库连接池就是为了解决上面的并发访问时,服务器超载的现象
数据库连接池
访问jsp/action/control/servlet
数据库连接池在程序一开始运行的时候,就会扫描到配置中的\"initialPoolSize\"=6(初始化时创建的连接数为6),然后在计算机的内存中,创建出6个Connection连接对象,当有多个用户同时访问时,数据库连接池就会将每个用户分配Conection连接对象,从而与数据库建立连接,当有用户使用完这个Conection对象时,就会将这个资源释放,然后让别的用户来连接Conection对象
但是当有百万个用户并发访问时,数据库连接池也不能支持,数据库还是会被挂起,这个时候就需要采用负载均衡技术,将多个请求平均分配到多台服务器中,每台服务器中用数据库连接池将这些请求合理地分配出去
一个用户
数据库连接池中的c3p0配置信息中,maxIdleTime表示最长的连接时间,如果数据库的查询等语句优化后的时间仍然比这个时间长,那么就会由于超出这个最长连接时间,数据库连接池Connection对象中断与数据库的连接,导致查询语句查询不出所要得到的结果
多个用户
数据库连接池中的c3p0配置信息中,minPoolSize连接池中保留的最小连接数,默认为15,maxPoolSize连接池中保留的最大连接数,默认为15,比如有10个用户并发的同时访问,初始化的数据库连接池中Conenction对象为5,最大连接数为10,当访问时就会有5个用户直接使用这5个Conection对象,然后再创建出5个Connection对象让其他5个用户来使用
0 条评论
下一页