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

首頁 > 數據庫 > MySQL > 正文

mysql數據庫查詢優化 mysql效率第1/3頁

2024-07-24 12:43:34
字體:
來源:轉載
供稿:網友
提高MySQL 查詢效率的三個技巧小結
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 */; 
       insertbind[0].buffer = (char *)m_stInsertParam->sessionid; 
       insertbind[0].is_null = 0; 
       insertbind[0].length = 0; 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大姚县| 翼城县| 昆山市| 桐梓县| 岐山县| 宜昌市| 龙泉市| 樟树市| 信宜市| 南川市| 齐河县| 霍城县| 勃利县| 龙井市| 明溪县| 板桥市| 甘肃省| 大同县| 工布江达县| 宝坻区| 克什克腾旗| 英山县| 四子王旗| 宜州市| 镇原县| 桃源县| 天气| 探索| 青河县| 天柱县| 马山县| 渝北区| 汤阴县| 南皮县| 固原市| 石台县| 南昌县| 会昌县| 南昌县| 根河市| 游戏|