数据库连接池?
数据库连接池负责分配、管理、和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个,释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。
也就是说:每一个数据库连接对象都会对应一个物理数据库连接,如果每次连接的时候都打开一个物理连接,使用完再关闭,这样系统的性能势必低下,所以用到了数据库连接池,连接池其实就是再应用启动的时候,就建立很多数据库连接,这些连接组成一个连接池,其实可以理解为在一个池子里放了很多半成品的数据库连接对象,然后在使用的时候去动态的申请连接、使用和释放等。连接池实现的核心:当用户关闭连接的时候,就把连接返回到连接池中,让其他线程去使用。
在博客中看到一篇关于传统的数据库连接机制与数据库连接池运行机制的区别:
1、传统流程步骤(MySQL):
1)TCP建立连接的三次握手。
2)MySQL认证的三次握手。
3)执行SQL。
4)MySQL关闭。
5)TCP四次握手关闭。
2、使用连接池:
使用连接池在第一次连接的时候和传统的差距不大,但是第一次之后的使用中,就直接用之前创建的连接去执行SQL语句。
后面尝试一下手写数据库连接池。