首次安装时,我的应用程序必须缓存从网络获取的数据,并将行插入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)
有没有更有效,更快捷的方式来处理这个插入?
使用SQLite Transaction执行记录插入.它将惊人地加速整个过程; 因为当您执行单个插入(一次一个)时,SQLite会将每个插入视为一个事务,并且需要为每个执行创建一个Journal-file(这需要时间).但是,当您将所有添加/编辑/删除查询绑定到单个事务时,在整个事务结束时只创建一个日志文件,从而导致SQLite快速执行查询.
| 归档时间: |
|
| 查看次数: |
1437 次 |
| 最近记录: |