【问题标题】:SQLite Cursor limit - 1MBSQLite 游标限制 - 1MB
【发布时间】:2013-06-26 23:12:36
【问题描述】:

我发现光标最多只能容纳 1MB。 这是否意味着如果我有 3 行,那么每行的大小都是 400KB。 (这意味着它们三个加起来是 1.2MB)。

我用一个游标查询这 3 行,它会起作用吗?游标是否限制每行或每个查询的大小?

如果每次查询都可以,那么从我的数据库中提取数据的最佳方法是什么?由于 1MB 的限制,我是否必须为每一行创建单独的查询..?

谢谢!

【问题讨论】:

    标签: android database sqlite cursor


    【解决方案1】:

    SQLite 按需计算结果记录,因此具有只进游标。 为了允许通过游标向后移动,当您打开游标时,Android API 会将所有结果读入内存。

    1 MB 查询 限制是为了防止无意义的查询阻塞设备。

    Large blobs should not be stored in the database but in the file system.

    【讨论】:

    • 感谢您的回答。首先,我想说我必须将 BLOB 存储在 DB 中(它在那里使用 SQLCipher 加密)。其次,据我所知,每行1MB?如果是这样,为什么会出现该错误?
    • 我的数据库的每一行最大为 400KB。我应该不会得到那个错误吧?
    • 所有条记录先读取;该限制适用于整个结果集。
    • 啊哈,我明白了。对我应该如何从数据库中获取数据有任何想法吗?
    • 这样限制就不会发生了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多