Android sqilte 用游标取数据,用多线程没有明显改善,为什么?

DavidWu 发布于 2014/09/19 16:44
阅读 250
收藏 0

有这样一个场景

sqlite里面数据大约5w条左右,取出满足要求的集合,需要sql查询两次得到(sql不是我写的)。

得到的查询结果大约8000条。目前需求必须要全部把数据加载到内存里。

在主线程模式下,完成整个数据加载大约需要花费8s左右(某型号手机)

我把取数据方式改造一下,

1.第一条sql先去搜索一共有几条记录。

2.分配3个线程,并且使用limit进行分页(分三页)再循环。

3.合并结果(Future,Callable,线程池)

本来预期是3~4秒内完成加载,但是结果很失望,加载速度大约仅提高了1s秒钟。


想问问各位大仙,是否有更好的思路?







加载中
0
DavidWu
DavidWu

刚找到一个方法,我自己回答下吧

getWritableDatabase().enableWriteAheadLogging(); 

打开就行。但是记得要API 11以上才有。 

0
carlos
carlos
这个为啥可以?
DavidWu
DavidWu
因为有锁
返回顶部
顶部