android sqlite,大数据处理、同时读写

1. 批量写入,采用事物方式,先缓存数据,再批量写入数据,极大提高了速度

288条,直接inset  into  耗时7秒

8640条,     批量写入  耗时5-7秒

try {
				this.myDataBase.beginTransaction(); // 手动设置开始事务
				for (int i = 0; i < objArr.length; i++) {
					this.myDataBase.execSQL(sql[i]);
				}
				this.myDataBase.setTransactionSuccessful(); // 设置事务处理成功,不设置会自动回滚不提交
				iResult = true;
				return iResult;

			} catch (SQLException e) {
				e.printStackTrace();
				Log.e("log", e.getMessage());
				return iResult;
			} finally {
				this.myDataBase.endTransaction(); // 处理完成
				this.myDataBase.close();
			}


2. 同时读写

sqlite 允许 1读,多写, 

getReadableDatabase   为读(底层是先打开写入格式,再转换成只读模式,如果系统内存不足,则打开的为只读模式)

Curse  cur,   cur 再对其做操作之前(比如 MovetoFirst()。。。)都只是一个指针,并没有对数据库进行操作。

getWritableDatabase 为写


此两种操作数据库的打开模式有互斥关系,底层已加同步锁





  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值