高性能数据库连接池的内幕
Posted 中生代技术
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高性能数据库连接池的内幕相关的知识,希望对你有一定的参考价值。
中生代技术群分享第三十一期
讲师:何涛
编辑:友强
注:完美修订版
何涛
唯品会平台架构师
大家可能会有这样疑问:连接池类似于线程池或者对象池,就是一个放连接的池子,使用的时候从里面拿一个,用完了再归还,功能非常简单,有什么可讲的。
可能还会有这样的疑问:高性能这么高大上,一个小小的连接池,如何跟高大上靠上边的。
本主题将会全面介绍连接池原理,高性能的设计,优化实践,现有连接池的瓶颈及解决方案。同时也会介绍唯品会自研数据库连接池产品(代号:Caelus)
为什么要有连接池
先看一下连接池所处的位置:
应用框架的业务实现一般都会访问数据库,缓存或者HTTP服务。为什么要在访问的地方加上一个连接池呢?
下面以访问mysql为例,执行一个SQL命令,如果不使用连接池,需要经过哪些流程。
1:TCP建立连接的三次握手
2:MySQL认证的三次握手
3:真正的SQL执行
4:MySQL的关闭
5:TCP的四次握手关闭
可以看到,为了执行一条SQL,却多了非常多我们不关心的网络交互。
优点:实现简单。
缺点:
1:网络IO较多
2:数据库的负载较高
&n
以上是关于高性能数据库连接池的内幕的主要内容,如果未能解决你的问题,请参考以下文章