当前位置: 首页 > news >正文

数据库连接池——关键技术点介绍

在 C++ 中,queue 是一种先进先出(FIFO)的顺序容器适配器,它并不直接管理底层的元素存储结构,而是基于某种序列式容器(如 deque 或 list)实现的封装结构。

deque

deque是分段连续的,map实际上是一个vector,vector中存放的是指针,指针分别指向各个缓冲区buffer;
deque的迭代器是一个class,class中包含四个元素:node(指向map),first和last指定当前缓冲区的边界(左闭右开)
start和finish迭代器
在这里插入图片描述

CAS原子操作

CAS 原子操作(Compare-And-Swap,比较并交换)是并发编程中的一种原子性同步原语,在多线程或多核环境下,用于实现无锁(lock-free)编程,避免传统加锁带来的性能问题。
CAS 是一种用于实现无锁并发操作的原子指令,通过比较内存中的值与期望值是否相等来决定是否更新变量,常用于原子整型操作等场景,是并发编程中的基础原语。

关键技术点介绍

MySQL数据库编程、单例模式、queue队列容器、C++11多线程编程、线程互斥、线程同步通信和
unique_lock、基于CAS的原子整形、智能指针shared_ptr、lambda表达式、生产者-消费者线程模型

数据库的访问瓶颈:
1.为减少磁盘IO,在服务器和数据库应用之间加一层缓存数据库,比如redis
2.服务器应用和MySQL服务器相当于CS结构,因此可以增加连接池。在高并发情况下,大量的
TCP三次握手、MySQL Server连接认证、MySQL Server关闭连接回收资源和TCP四次挥手所耗费的
性能时间也是很明显的,增加连接池就是为了减少这一部分的性能损耗。

功能介绍

在系统启动时,在服务器端事先创建和mysqlServer一定数量的连接,用户连接请求直接从线程池中取出一条空闲连接执行;
连接池一般包含了数据库连接所用的ip地址、port端口号、用户名和密码以及其它的性能参数
1.初始连接量initSize
**2.最大连接量maxSize:**一般连接池和服务器程序是部署在一台
主机上的,如果连接池占用过多的socket资源,那么服务器就不能接收太多的客户端请求了。
**3.最大空闲时间maxIdle Time: **动态增加的连接数量超过最大空闲时间,就会被回收;
**4.连接超时时间connection Timeout;**当连接数已经达到maxSize并且没有空闲连接可用,通过阻塞获取连接的时间超过connectionTimeout时间,则获取连接失败,无法访问数据库;
在这里插入图片描述

在这里插入图片描述
开发平台:
windows
压力测试:
验证数据的插入操作所花费的时间,第一次测试使用普通的数据库访问操作,第二次测试使用带连接池
的数据库访问操作,对比两次操作同样数据量所花费的时间,性能压力测试结果如下:
在这里插入图片描述

相关文章:

  • Kafka 2.7.0 单节点安装与启动教程(适配 JDK 1.8)
  • PostgreSQL --数据库操作
  • C# OAuth2密码模式接口鉴权
  • vue防止按钮重复点击方案
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | FAQ Collapse(问题解答折叠面板)
  • 如何使用vue2设计提示框组件
  • python-docx 库教程
  • Linux内核学习资料-deepseek
  • OPenCV CUDA模块图形变换----构建透视变换映射表函数buildWarpPerspectiveMaps()
  • 【技术支持】Android11 中获取应用列表
  • AVCap视频处理成帧和音频脚本
  • React前端框架学习
  • Babylon.js引擎(二)
  • 【python】基于pycharm的海康相机SDK二次开发
  • 美团NoCode设计网站的尝试经验分享
  • 打卡第42天:简单CNN
  • 游戏日志统计操作次数前三的用户
  • Linux日志分割压缩实战指南
  • 手写RPC框架<四> 负载均衡
  • 不同厂商保障UEFI/BIOS安全的技术与机制详解
  • 网站建设开发报价/搜索引擎优化教材答案
  • 网站建设情况怎么写范文/知识营销
  • 做柜子网站/新手怎么学做电商
  • 网站怎么做分页/什么是交换链接
  • 网络推广网站排名/域名检测工具
  • 安卓系统上怎样做网站前端开发/头条今日头条新闻