您的位置:首页 > 移动开发 > Android开发

Android操作sqlite导入大量数据耗时的解决方法

2013-07-13 14:03 405 查看
在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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐