国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

提高MySQL 查詢效率的三個技巧第1/2頁

2024-07-24 12:44:10
字體:
來源:轉載
供稿:網友
MySQL由于它本身的小巧和操作的高效, 在數據庫應用中越來越多的被采用.我在開發一個P2P應用的時候曾經使用MySQL來保存P2P節點,由于P2P的應用中,結點數動輒上萬個,而且節點變化頻繁,因此一定要保持查詢和插入的高效.以下是我在使用過程中做的提高效率的三個有效的嘗試.

l        使用statement進行綁定查詢
使用statement可以提前構建查詢語法樹,在查詢時不再需要構建語法樹就直接查詢.因此可以很好的提高查詢的效率. 這個方法適合于查詢條件固定但查詢非常頻繁的場合.
使用方法是:
綁定, 創建一個MYSQL_STMT變量,與對應的查詢字符串綁定,字符串中的問號代表要傳入的變量,每個問號都必須指定一個變量. 
查詢, 輸入每個指定的變量, 傳入MYSQL_STMT變量用可用的連接句柄執行. 
代碼如下:

//1.綁定
bool CDBManager::BindInsertStmt(MYSQL * connecthandle)
{
       //作插入操作的綁定
       MYSQL_BIND insertbind[FEILD_NUM];
       if(m_stInsertParam == NULL)
              m_stInsertParam = new CHostCacheTable;
       m_stInsertStmt = mysql_stmt_init(connecthandle);
       //構建綁定字符串
       char insertSQL[SQL_LENGTH];
       strcpy(insertSQL, "insert into HostCache(SessionID, ChannelID, ISPType, "
              "ExternalIP, ExternalPort, InternalIP, InternalPort) "
              "values(?, ?, ?, ?, ?, ?, ?)");
       mysql_stmt_prepare(m_stInsertStmt, insertSQL, strlen(insertSQL));
       int param_count= mysql_stmt_param_count(m_stInsertStmt);
       if(param_count != FEILD_NUM)
              return false;
       //填充bind結構數組, m_sInsertParam是這個statement關聯的結構變量
       memset(insertbind, 0, sizeof(insertbind));
       insertbind[0].buffer_type = MYSQL_TYPE_STRING;
       insertbind[0].buffer_length = ID_LENGTH /* -1 */;
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴义市| 柏乡县| 福鼎市| 上栗县| 蓝田县| 鄢陵县| 玛沁县| 衡阳县| 巢湖市| 安乡县| 章丘市| 衡阳县| 揭东县| 盐城市| 兴义市| 皋兰县| 响水县| 南部县| 石家庄市| 临沧市| 鹤山市| 宝山区| 皮山县| 收藏| 海淀区| 河北区| 万州区| 崇州市| 新源县| 公安县| 江城| 湘潭市| 天祝| 康乐县| 徐水县| 玛曲县| 韶关市| 宾阳县| 宁陵县| 元谋县| 隆昌县|