Android批量插入数据性能优化
2015-02-04 17:39
113 查看
最近做数据同步时遇到一个问题,在下载数据时需要批量的向sqlite插入数据,虽然数据不算多,但是实际测试中每插入一条数据需要将近50ms的时间,这意味着100条数据就需要花费5s左右的时间,对于用户来说,体验太差了,必须要优化。
在google了之后,发现了sqlite的事务处理问题,在sqlite插入数据的时候默认一条语句就是一个事务,有多少条数据就有多少次磁盘操作。明白了这个,解决方案就有了,在批量插入数据的时候,只开启一个事务,这样只会进行一次磁盘操作,代码如下:
使用事务后性能有明显的提升,以批量操作100条为例,由原来的5s优化成了现在的1s。
在google了之后,发现了sqlite的事务处理问题,在sqlite插入数据的时候默认一条语句就是一个事务,有多少条数据就有多少次磁盘操作。明白了这个,解决方案就有了,在批量插入数据的时候,只开启一个事务,这样只会进行一次磁盘操作,代码如下:
db.beginTransaction(); try { for (...) { db.execSQL("...", new Object[]{}); } db.setTransactionSuccessful(); } catch (Exception e) { } finally { db.endTransaction(); }
使用事务后性能有明显的提升,以批量操作100条为例,由原来的5s优化成了现在的1s。
相关文章推荐
- Android批量插入数据性能优化
- 大数据应用之HBase数据插入性能优化之多线程并行插入测试案例
- Sqlite3插入大量数据性能优化
- 大数据应用之HBase数据插入性能优化之多线程并行插入测试案例
- sql优化:SQL Server与Oracle性能对比(插入100w条数据时)
- MYSQL开发性能研究之批量插入数据的优化方法
- 大数据应用之HBase数据插入性能优化之多线程并行插入测试案例
- MySQL innoDB数据插入性能优化
- .NET 批量插入数据,先查后插,性能优化
- 大数据应用之HBase数据插入性能优化实测教程
- Android批量插入数据到sqlite的性能优化
- 一次EF批量插入多表数据的性能优化经历
- 关于mysql上万条数据同时插入时的性能优化
- MySQL innoDB数据插入性能优化
- Sqlite3插入大量数据性能优化
- 【android】 批量插入数据到sqlite的性能优化
- 大数据应用之HBase数据插入性能优化之多线程并行插入测试案例
- 大数据应用之HBase数据插入性能优化实测教程
- MySQL批量千万级数据SQL插入性能优化<细读>
- MySQL在插入90万条数据消耗的时间以及查询90万条数据时的性能优化