当前位置: 代码迷 >> 其他数据库 >> sqlite3查询速度有关问题
  详细解决方案

sqlite3查询速度有关问题

热度:3530   发布时间:2013-02-26 00:00:00.0
sqlite3查询速度问题
我是一个新手,我现在有这么一个问题:我需要对内存中的数据进行跟新,也就是把不要的delete掉,把要的从数据库中加载,存到内存中。
加载的函数叫GetRegion,通过Region的英文名(可以看成是Region的唯一ID),查询数据库中的MapElement表,记录只有一条,加载它,并存到pRegion指向的结构体中。至于myChar是我自己重定义了char类型。
函数代码如下:
C/C++ code
myChar mySqlite::GetRegion( myChar * psRegEnName , myRegion * pRegion ){    myChar sql[256];    /* make sql */    strcpy(sql,"select ID,ChName,EnName,Data ");    strcat(sql,"from MapElement ");    strcat(sql,"where EnName='");    strcat(sql,psRegEnName);    strcat(sql,"';");    sqlite3_prepare( pDB , sql ,-1 , &pstmt , NULL );    if ( sqlite3_step( pstmt ) != SQLITE_ROW)    {        #ifndef ERRORMESSAGE        fprintf(stderr,"sqlite3_step failed!\n");        #endif        return MYSQLITE_ERROR;    }         //对pstmt指向的记录进行处理,并加载到内存中。         //do something    sqlite3_finalize( pstmt );    return OK;}

现在问题是这样的,我在一次更新操作时所耗费的时间很大。因为一次更新操作调用很多次这个函数,频繁打开关闭数据库,创建毁灭stmt,我认为是这个影响我更新操作的效率的。
请问我应该如何设计才能让我是更新操作的效率提升。

------解决方案--------------------------------------------------------
换个思路,看看能不能用一个SQL语句来解决?

建议你直接写出你想实现的更新功能。