数据库连接池DBPool分析(一):简介

本文介绍了作者作为一个刚毕业的本科生,如何用C++实现了一个包含Mysql支持的简单数据库连接池,并计划加入Redis。通过介绍池的概念,强调了数据库连接池在性能提升、内存管理和线程效率方面的优势。文中提到了使用的库,如libmysqlclient-dev, hiredis, boost和gtest,并提供了安装脚本。" 108206873,8765485,使用图像文件名自动为投资组合图像添加字幕,"['计算机视觉', '图像处理', 'Python', 'OpenCV']
摘要由CSDN通过智能技术生成

刚刚毕业的本科生,在研究了公司的框架之后,自己花了三天的时间用C++实现了简单的数据库连接池,包括了Mysql。正在加入Redis的支持。请访问我的github:https://github.com/adairjun/DBPool

概述

所谓池的概念,就是一次性向系统申请多个资源并保存下来,等到程序需要向系统申请资源的时候,就直接向池当中去申请。相当于在执行程序和系统资源之间加了一层。
有高人云:“计算机科学领域的任何问题, 都可以通过添加一个中间层来解决”
那么这个池作为中间层解决了什么问题呢?


1,性能的提升:数据库连接是一种极耗系统资源的操作,尤其是在多层结构的应用环境中,这种资源的耗费对系统性能影响尤为明显。我实习的时候,部门经理告诉我,框架性能的压力大部分集中在数据库的IO上,这是在他review我的代码的时候说的,当时我写的数据库接口访问Mysql,本来可以一条SELECT语句查询出结果,再使用循环将结果写入到vector当中,但是我却是在循环当中使用了SELECT语句,导致了多次查询。经理告诉我相同功能的查询语句,由于打开关闭数据库连接的次数不同导致两个查询语句耗费的时间差别很大。

2,内存碎片(memory fragmentation)的问题,这个是对于内存池来说的。

3,线程池,减少线程创建的开销,而且在请求到达时候线程已经存在了,所以无意中也消除了线程创建所带来的延迟。这样,就可以立即为请求服务,使应用程序响应更快。

用到的

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值