Android事务操作(操作sqlite导入大量数据耗时的解决方法)
来源:互联网 发布:淘宝买蔬菜种子 编辑:程序博客网 时间:2024/06/08 10:07
原文路径:http://blog.csdn.net/xyg165/article/details/8489551
在Android开发中,需要向sqlite中导入大量数据,按照一般做法是很耗时的,测试了一下,导入一条数据在100ms左右,按照这样的做法,如果导入1万条数据,大约得花17分钟,经过实际测试,确实花了17分钟左右。
解决耗时的办法是利用sqlite的事务来处理。方法如下:
首先获取database对象,然后执行如下方法:
db.beginTransaction(); //手动设置开始事务
//数据插入操作循环
//update insert delete select可以循环嵌套操作
db.setTransactionSuccessful(); //设置事务处理成功,不设置会自动回滚不提交
db.endTransaction(); //处理完成
测试了一下,如果导入1万条数据,大约耗时20秒左右。性能比之前提升了一大截。
比如
public int insert(Uri uri, ContentValues[] values) {
SQLiteDatabase db = mOpenHelper.getWritableDatabase();
db.beginTransaction();
try {
int numValues = values.length;
for (int i = 0; i < numValues; i++) {
db.insertOrThrow(tablename, null, values);
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
return values.length;
}
- Android事务操作(操作sqlite导入大量数据耗时的解决方法)
- Android操作sqlite导入大量数据耗时的解决方法
- Android操作sqlite导入大量数据耗时的解决方法
- Android数据存储SQLite - 事务操作
- Android SQLite事务操作
- SQLite的事务操作
- Android中SQLite事务的操作
- Android中的sqlite事务操作
- 如何解决大量字符串的拼接操作的耗时问题
- SQLite 插入大量数据慢的解决方法
- C++操作MySQL大量数据插入效率低下的解决方法
- android 开启线程查询数据,耗时操作
- Android SQLite 数据操作
- android sqlite数据操作
- Android SQLite数据操作
- 事务(sqlite本地数据操作优化)
- 使用事务操作SQLite数据批量插入
- 启用事务操作,解决批量插入或更新sqlite,mssql等数据库耗时问题
- UML关系(泛化,实现,依赖,关联(聚合,组合))
- Remove Norton Safety Minder with WindowsUninstaller.Org Removal Tips
- [IO]如何列出某个目录下的所有文件
- 10进制 VS 2进制 (九度oj)
- 堆栈浅析
- Android事务操作(操作sqlite导入大量数据耗时的解决方法)
- 解决Jquery $("#main").html($("#main").html()+data);在Firefox中无效
- Python中globals和locals的区别-pybatis的准备阶段(六)
- [IO]如何列出某个目录下的所有子目录
- 从用户空间传递到内核中字符串的长度
- master plan 功能修改
- 用Bitmap加载图片资源时,报错java.lang.OutOfMemoryError: bitmap size exceeds VM budget的解决办法
- WebView加载网络PDF(一)
- SO_REUSEADDR例解