sqlite3 多数据下性能如此低下, 是我不会用么?
数据库 11M 大小, 大约 15W 条数据, 27 个字段。
Release 下
做一次 Select , 目测用时
r = sqlite3_get_table(m_Sqlite,mSqlString,&mResult,&mRows,&mColumns,&m_cErrmsg);
大约用时几秒钟, 没关系, 我知道数据很大
可是, 没想到的是
sqlite3_free_table(mResult);
释放语句居然需要几分钟才能释放完毕, 这是我使用错误, 还是它的Debug ?
SQLITE_API void sqlite3_free_table(
char **azResult /* Result returned from from sqlite3_get_table() */
){
if( azResult ){
int i, n;
azResult--;
assert( azResult!=0 );
n = SQLITE_PTR_TO_INT(azResult[0]);
for(i=1; i<n; i++){ if( azResult[i] ) sqlite3_free(azResult[i]); }
sqlite3_free(azResult);
}
}
分是折开释放的, 但也用不了这么久吧。。。 这算什么啊~~
请问大家有更好的SQLLITE读取方案吗? 大数据, 多字段的。