【问题标题】:Android Cursor maximum sizeAndroid 光标最大尺寸
【发布时间】:2012-06-22 18:23:51
【问题描述】:

看来,android 中的游标最多只能容纳 1 MB 的数据。

从 SQLite 数据库中保持在 1 MB 限制以下的表中提取最大行数的最有效方法是什么?

【问题讨论】:

  • 到目前为止我想出的最好方法是对几行进行采样并“估计”你可以提取多少行。你只需要确保你永远不会超过 1MB 的限制。
  • 最好的方法是使用分页的概念,即分批从数据库中获取数据,十乘十行获取,并在下次从数据库中检索之前清除游标。

标签: android database sqlite limit android-cursor


【解决方案1】:

我不认为有确定正确限制的硬性和快速的方法,但我查看了 CursorWindow 文档并发现 copyStringToBuffer (int row, int column, CharArrayBuffer buffer) 似乎很有希望,因为 CharArrayBuffer 有一个名为 sizeCopied 的整数字段并且方法 copyStringToBuffer 采用指定行和列的文本。也许您可以从缓冲区中获取大小并为您拥有的每一行和每一列添加?如果你使用 SQLiteCursor,你可以使用setWindow(CursorWindow window) 来设置你自己的窗口。

【讨论】:

    【解决方案2】:

    您可以放置​​LIMIT子句,以便部分获取行。

    【讨论】:

    • 对,但我如何确定合适的限制是多少?
    • 然后你可以平分或者你喜欢的任何方式
    • 我想你不明白。我试图找到确定任意表中有多少行等于 1MB 的最佳方法。在一个表中可能是 1000 行,在另一个表中可能是 500 行。
    • 是但不是行的大小
    • 这是您可以实现的方式...stackoverflow.com/questions/9873869/…
    猜你喜欢
    • 1970-01-01
    • 2012-03-16
    • 2014-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多