参考这个问题:
How SQLite on Android handles long strings?
它表示默认的SQLite存储量为10亿。这与实际网站相同。
然而,正如该人所述,它可能会更少。我想知道他们是否有办法检查这个值是什么?
谢谢!
答案 0 :(得分:8)
字符串或BLOB的最大长度
SQLite中字符串或BLOB中的最大字节数由预处理器宏SQLITE_MAX_LENGTH定义。此宏的默认值为10亿(十亿或1,000,000,000)。您 可以使用命令行在编译时提高或降低此值 选项如下:
-DSQLITE_MAX_LENGTH=123456789
当前实现只支持长度为231-1或2147483647的字符串或BLOB。还有一些 在此之前,内置函数(如hex())可能会失败。在 安全敏感的应用程序最好不要尝试增加 最大字符串和blob长度。事实上,你可能会做得更好 最大字符串和blob长度到a的范围内 如果可能的话,几百万。
在SQLite的INSERT和SELECT处理过程中,数据库中每行的完整内容被编码为单个BLOB。所以 SQLITE_MAX_LENGTH参数也决定了最大数量 连续的字节。
答案 1 :(得分:5)
在运行时无法读取Android中的SQLite限制。 (SQLite在其C API中有a function for this,但Android不会公开它。)
在任何情况下,我都不知道任何Android供应商已经减少了SQLite的任何限制。 (通常情况下,当他们在自己的应用程序中需要或者尝试优化时,他们会增加一些限制或启用某些选项,但他们从不打扰改变其他内容。)