Skip to content

breeze-wink/cpp-mysql-connectionPool

Repository files navigation

mysql-connection_pool

背景

在高并发的情况下,大量的TCP三次握手,MySQL Server 连接认证,关闭连接回收资源和TCP四次挥手耗费时间,影响应用性能,增加连接池的目的是减少这一部分的性能损耗。

已经实现的功能

初始连接量 : 连接池创建时,会直接创建初始数量的连接,作为连接数量的下限,当应用发起MySQL请求时,可以不用创建listener线程,直接从连接池中获取连接,用后归还,减少创建连接和销毁的次数,提高性能。

最大连接量 : 当连接池中的连接数量不够用时,会创建新的连接,当连接池中的连接数量达到最大数量时,不再创建新的连接,避免连接数量太多。

连接回收 : 当连接池中的连接数量大于初始数量,若存在空闲时间超过指定时间(maxIdleTime)的连接,则会自动将其回收,降低连接数量,提高性能。

线程安全 : 所有的连接池操作都是线程安全的,可以多线程并发操作。

测试

测试环境:ubuntu64 虚拟机

测试结果(不使用连接池不知为何这么慢,可能是网络原因) alt text

About

使用C++实现一个mysql连接池

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors