从SQLite数据库加载10000行的最快方法是什么?

fhu*_*cho 5 sqlite android database-performance android-sqlite

从SQLite数据库加载10,000行到内存的最快方法是什么?每行有1个文本和4个整数.目前,我这样做:

while(!cursor.isAfterLast()) {
    cursor.copyStringToBuffer(column_index_1, buffer);
    cursor.copyStringToBuffer(column_index_2, buffer);
    cursor.copyStringToBuffer(column_index_3, buffer);
    cursor.copyStringToBuffer(column_index_4, buffer);
    cursor.copyStringToBuffer(column_index_5, buffer);
    cursor.moveToNext();
}
Run Code Online (Sandbox Code Playgroud)

Galaxy Nexus上面的代码大约需要750毫秒.在较旧的设备上,它可能会慢几倍.我可以加快速度吗?

(此时,你可能会输入类似"为什么需要将行加载到内存中?"这有点复杂但我可以尝试解释一下是否有人感兴趣.编辑:这是解释:https:// gist .github.com/fhucho/af355d56ae3145e3e30f)

Ang*_*oid 2

首先我建议您仅加载前 1000 行,然后使用 AsyncTask 加载更多行。

您可以在这里找到回复http://www.javasrilankansupport.com/2012/11/asynctask-android-example-asynctask-in.html

希望这有帮助