CursorWindow 大小需要增大

Joh*_*590 5 sqlite android android-cursor android-sqlite

我问这个问题是因为 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 和海量数据集

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