druid连接池配置多少合适(druid连接池配置详解 maxactive)

druid连接池配置多少合适(druid连接池配置详解 maxactive)svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。



 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> 

讯享网

  • 在魔兽世界中数据库使用mysql来存储,并且数据库模块是直接嵌入在server中,并没有单独的DB server
  • 有两种连接池,一种是同步,一种是异步
  • 连接池相关源码目录: TrinityCore-mastersrcserverdatabaseDatabase
  • 连接池具体文件: DatabaseWorkerPool.h DatabaseWorkerPool.cpp

连接池中的一些类

img
讯享网

  • 是一个模板类,提供了四个类,代表魔兽世界四个数据库连接池
讯享网

异步连接池类型

同步连接池类型

 

线程池任务队列

连接池(同步连接池和异步连接池用这一个),异步连接池下标为0,同步连接池下标为1.

EFY76IoJjPlHayx

存储数据库信息

讯享网

:预加载sql语句数量,与业务有关,实现存储的sql语句

:异步线程池的线程数量

:同步线程池的线程数量

 

初始化构造函数

创建连接池对象以及清零线程池数量

讯享网

析构函数

 

SetConnectionInfo 设置数据库信息以及连接池数量

讯享网

创建一条指定的连接

 

open 初始化连接池

初始化连接池,生成指定数量的同步和异步mysql连接加入连接池

讯享网

close 关闭连接

关闭所有的同步连接以及异步连接

 

GetFreeConnection获取一条空闲连接

讯享网

DatabaseWorkerPool.h

 

头文件包含和模板参数

  1. 头文件包含
    • 包含了必要的头文件,如 , , 和 ,这些文件可能定义了数据类型和一些通用函数。
    • 使用了 STL 库如 , , 和 。
  2. 模板参数
    • :由于 是一个模板类,因此可以为不同的数据库连接类型提供通用接口。

私有成员与公共接口

  1. 私有成员
    • :一个枚举类,用于指定连接池的类型(异步和同步连接)。
    • :一个智能指针,指向任务队列,使用生产者-消费者模型处理 SQL 操作。
    • :存储同步和异步数据库连接的向量数组。
    • : 存储数据库连接信息的智能指针。
    • : 用于存储预先加载的 SQL 语句数量的向量。
    • 和 : 记录异步和同步的线程数量。

主要功能

  1. 构造与析构
    • :构造函数,用于初始化对象。
    • :析构函数,用于清理资源。
  2. 连接信息与管理
    • :设置数据库连接的信息和线程数量。
    • :初始化连接池,生成指定数量的连接。
    • :销毁连接池中的所有连接。
  3. 执行 SQL 操作
    • :将 SQL 语句排入任务队列以进行异步执行。
    • :同步执行 SQL 语句,调用线程将被阻塞,直到执行完成。
    • :执行 SQL 查询并返回结果,阻塞模式。
  4. 预处理语句
    • :准备所有预处理语句,以备后续使用。
    • :获取指定索引的预处理语句。
  5. 事务管理
    • :开始一个新的事务。
    • :提交事务。
  6. 异步与同步查询
    • 和 :提供异步方式处理查询与事务的功能。

辅助方法

  • 字符串转义
    • :用于对字符串进行 SQL 转义。
  • 保持连接活跃
    • :保持数据库连接活跃,防止服务器断开与我们的连接。

调试和警告

  • :在调试模式下,可以通过 方法设置是否警告同步查询。

小讯
上一篇 2025-06-09 12:50
下一篇 2025-05-14 18:51

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/147747.html