提高mysql 查询效率的三个技巧

提高mysql 查询效率的三个技巧

ID:14196416

大小:52.00 KB

页数:15页

时间:2018-07-26

提高mysql 查询效率的三个技巧_第1页
提高mysql 查询效率的三个技巧_第2页
提高mysql 查询效率的三个技巧_第3页
提高mysql 查询效率的三个技巧_第4页
提高mysql 查询效率的三个技巧_第5页
资源描述:

《提高mysql 查询效率的三个技巧》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、提高MySQL查询效率的三个技巧MySQL由于它本身的小巧和操作的高效,在数据库应用中越来越多的被采用.我在开发一个P2P应用的时候曾经使用MySQL来保存P2P节点,由于P2P的应用中,结点数动辄上万个,而且节点变化频繁,因此一定要保持查询和插入的高效.以下是我在使用过程中做的提高效率的三个有效的尝试.1.使用statement进行绑定查询2.随机的获取记录3.使用连接池管理连接.MySQL由于它本身的小巧和操作的高效,在数据库应用中越来越多的被采用.我在开发一个P2P应用的时候曾经使用MySQL来保存P2P节点,由于P2P的应用中,结点数动辄上万个

2、,而且节点变化频繁,因此一定要保持查询和插入的高效.以下是我在使用过程中做的提高效率的三个有效的尝试.l使用statement进行绑定查询使用statement可以提前构建查询语法树,在查询时不再需要构建语法树就直接查询.因此可以很好的提高查询的效率.这个方法适合于查询条件固定但查询非常频繁的场合.使用方法是:绑定,创建一个MYSQL_STMT变量,与对应的查询字符串绑定,字符串中的问号代表要传入的变量,每个问号都必须指定一个变量.查询,输入每个指定的变量,传入MYSQL_STMT变量用可用的连接句柄执行.代码如下://1.绑定boolCDBManag

3、er::BindInsertStmt(MYSQL*connecthandle){//作插入操作的绑定MYSQL_BINDinsertbind[FEILD_NUM];if(m_stInsertParam==NULL)m_stInsertParam=newCHostCacheTable;m_stInsertStmt=mysql_stmt_init(connecthandle);//构建绑定字符串charinsertSQL[SQL_LENGTH];strcpy(insertSQL,"insertintoHostCache(SessionID,ChannelI

4、D,ISPType,""ExternalIP,ExternalPort,InternalIP,InternalPort)""values(?,?,?,?,?,?,?)");mysql_stmt_prepare(m_stInsertStmt,insertSQL,strlen(insertSQL));intparam_count=mysql_stmt_param_count(m_stInsertStmt);if(param_count!=FEILD_NUM)returnfalse;//填充bind结构数组,m_sInsertParam是这个statemen

5、t关联的结构变量memset(insertbind,0,sizeof(insertbind));insertbind[0].buffer_type=MYSQL_TYPE_STRING;insertbind[0].buffer_length=ID_LENGTH/*-1*/;insertbind[0].buffer=(char*)m_stInsertParam->sessionid;insertbind[0].is_null=0;insertbind[0].length=0;insertbind[1].buffer_type=MYSQL_TYPE_STRI

6、NG;insertbind[1].buffer_length=ID_LENGTH/*-1*/;insertbind[1].buffer=(char*)m_stInsertParam->channelid;insertbind[1].is_null=0;insertbind[1].length=0;insertbind[2].buffer_type=MYSQL_TYPE_TINY;insertbind[2].buffer=(char*)&m_stInsertParam->ISPtype;insertbind[2].is_null=0;insertbind

7、[2].length=0;insertbind[3].buffer_type=MYSQL_TYPE_LONG;insertbind[3].buffer=(char*)&m_stInsertParam->externalIP;insertbind[3].is_null=0;insertbind[3].length=0;insertbind[4].buffer_type=MYSQL_TYPE_SHORT;insertbind[4].buffer=(char*)&m_stInsertParam->externalPort;insertbind[4].is_n

8、ull=0;insertbind[4].length=0;insertbind[5].buff

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。