Android批量插入数据性能优化

作数据同步时遇到一个问题,在下载数据时须要批量的向sqlite插入数据,虽然数据不算多,可是实际测试中每插入一条数据须要将近50ms的时间,这意味着1000条数据就须要花费50s左右的时间,对于用户来讲,体验太差了,必需要优化。sql

在sqlite插入数据的时候默认一条语句就是一个事务,有多少条数据就有多少次磁盘操做。明白了这个,解决方案就有了,在批量插入数据的时候,只开启一个事务,这样只会进行一次磁盘操做,代码以下:
性能


db.beginTransaction();测试

try {优化

    for (...) {spa

        db.execSQL("...", new Object[]{});sqlite

    }事务

    db.setTransactionSuccessful();同步

} catch (Exception e) {it


} finally {io

    db.endTransaction();

}

使用事务后性能有明显的提高,以批量操做100条为例,由原来的5s优化成了如今的1s

相关文章
相关标签/搜索