您现在的位置:主页 > 技术中心 > 数据库技术

提高MySQL查询效率的三个有效的尝试(三)

来源:网络整理 责任编辑:admin 发表时间:2013-07-01 09:36 点击:

  使用连接池管理连接.

  在有大量节点访问的数据库设计中,经常要使用到连接池来管理所有的连接.

  一般方法是:建立两个连接句柄队列,空闲的等待使用的队列和正在使用的队列.

  当要查询时先从空闲队列中获取一个句柄,插入到正在使用的队列,再用这个句柄做数据库操作,完毕后一定要从使用队列中删除,再插入到空闲队列.

  设计代码如下:

//定义句柄队列
typedef std::list<MYSQL *> CONNECTION_HANDLE_LIST;
typedef std::list<MYSQL *>::iterator CONNECTION_HANDLE_LIST_IT;
 
//连接数据库的参数结构
class CDBParameter            
{
public:
       char *host;                                 ///<主机名
       char *user;                                 ///<用户名
       char *password;                         ///<密码
       char *database;                           ///<数据库名
       unsigned int port;                 ///<端口,一般为0
       const char *unix_socket;      ///<套接字,一般为NULL
       unsigned int client_flag; ///<一般为0
};
 
//创建两个队列
CONNECTION_HANDLE_LIST m_lsBusyList;                ///<正在使用的连接句柄
CONNECTION_HANDLE_LIST m_lsIdleList;                  ///<未使用的连接句柄
 
//所有的连接句柄先连上数据库,加入到空闲队列中,等待使用.
bool CDBManager::Connect(char * host /* = "localhost" */, char * user /* = "chenmin" */, \
                                           char * password /* = "chenmin" */, char * database /* = "HostCache" */)
{
   
    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    表情:
    用户名: 验证码:点击我更换图片

    推荐热点

    • SQL注入攻击及其防范检测技术研究
    • Sql-Server应用程序的高级Sql注入
    • 学生信息管理系统数据库原理课程设计报告
    • 经验总结:登录和优化IBM DB2的执行速度
    • MySQL服务器的启动与停止
    • 浅谈数据库的接口技术
    • 学习数据库知识之 SQL 操作标记
    • 如何在SQL Server和MySql中创建临时表
    • 有关Sybase系统的数据同步与复制问题
    ?? - ?? - ÝřŝžľŘÝź - TAGąęÇŠ - RSSśŠÔÄ - ??
    Copyright © 2004-2024 上海卓卓网络科技有限公司