Day 45 数据库连接池
数据库连接池
服务器端必须要支持并发访问,这就意味着可能会有很多客户端都要来链接mysql来存取数据,如果只有一条链接就意味着所有客户端只能串行执行,效率太低
mysql的连接本质上也是socket的连接,mysql的服务器支持并发操作
解决方案:
来一个客户端就穿件一条链接,使用完再关闭链接
问题:虽然可以并发,但是可能因为创建链接太多造成服务器崩溃,另外频繁创建和销毁链接消耗cpu资源
数据库连接池:
池就是一个容器
-
池的最大连接数
-
提供用于获取链接的方法
如果有现成的就直接返回;如果没有则创建一个新的链接;创建前需要判断当前已创建的连接数是否达到最大限制,如果链接已达到最大限制,则将该函数阻塞知道有一个空余的连接位置,没有达到则创建新的链接
-
在内部维护一个容易,用于存储以及创建的连接
web服务器
web服务器需要处理的任务:
- 监听端口
- 建立链接
- 接受请求数据
- 调用业务逻辑
- 将业务逻辑的返回值发送给客户端
- 需要实现并发