Android批量插入数据性能优化

发表于:2014-3-20 11:43

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:gavin_jin    来源:51Testing软件测试网采编

  做数据同步时遇到一个问题,在下载数据时需要批量的向sqlite插入数据,虽然数据不算多,但是实际测试中每插入一条数据需要将近50ms的时间,这意味着1000条数据就需要花费50s左右的时间,对于用户来说,体验太差了,必须要优化。
  在sqlite插入数据的时候默认一条语句就是一个事务,有多少条数据就有多少次磁盘操作。明白了这个,解决方案就有了,在批量插入数据的时候,只开启一个事务,这样只会进行一次磁盘操作,代码如下:
db.beginTransaction();
try {
for (...) {
db.execSQL("...", new Object[]{});
}
db.setTransactionSuccessful();
} catch (Exception e) {
} finally {
db.endTransaction();
}
  使用事务后性能有明显的提升,以批量操作100条为例,由原来的5s优化成了现在的1s
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号