CursorWindow的大小需要增长

时间:2013-07-12 12:03:14

标签: android sqlite android-sqlite android-cursor

我问这个问题,因为StackOverflow上的一些答案不是我要找的答案。 我的问题是在早期版本的Android 2.3中,查询速度非常慢,我得到了这条消息。

我的错误消息 06:37:25.521: ERROR/CursorWindow(322): need to grow: mSize = 1048576, size = 45, freeSpace() = 43, numRows = 8928 07-12 06:37:25.521: ERROR/CursorWindow(322): not growing since there are already 8928 row(s), max size 1048576

我认为此消息在Android 3.0+上不会发生,但我仍然需要很长时间才能进行查询,因此我正在考虑使用限制。虽然没有限制,它在Android 4.0+上几乎完美无缺。我也在使用SQLite FTS3 MATCH查询。

我有8928行的原因是因为我正在进行搜索建议,有人可以输入“t”并获得8928行甚至更大的行,这显然会冻结Android 2.3。我不能限制我的搜索建议阈值,因为只有两个字符的某些结果可能有20个结果或20000+,具体取决于它是什么。

Android SQLite and huge data sets

此链接可能是获得答案的最佳位置。给定链接中的最后一个答案似乎很有希望,但除非你执行cursor.getCount(),否则无法获得行数,这需要您从大查询中获取总行数(例如20000+结果) ),除非我想错了。这有什么解决方法吗?你会如何在代码中解决CursorWindow问题?

0 个答案:

没有答案