INSERT SQLite数据最有效的方法

and*_*eil 0 sqlite android

首次安装时,我的应用程序必须缓存从网络获取的数据,并将行插入SQLite数据库.我最终得到了大约700个插件,至少需要15秒.目前我的逻辑如下(伪):

ScrollThroughAllObjects(){
    if(objectDoesNotExist){
        cacheObject();
    }
}

cacheObject(Object ob){
    ContentValues values = new ContentValues();
    values.put(KEY_ID, ob.getId);
    // add lots more values
    return mDb.insert(DATABASE_TABLE, null, values);
}
Run Code Online (Sandbox Code Playgroud)

有没有更有效,更快捷的方式来处理这个插入?

waq*_*lam 6

使用SQLite Transaction执行记录插入.它将惊人地加速整个过程; 因为当您执行单个插入(一次一个)时,SQLite会将每个插入视为一个事务,并且需要为每个执行创建一个Journal-file(这需要时间).但是,当您将所有添加/编辑/删除查询绑定到单个事务时,在整个事务结束时只创建一个日志文件,从而导致SQLite快速执行查询.