关于这个问题:
它说默认 SQLite 存储在 10 亿个。这与实际站点相同。
但是,正如该人所说,它可能会更少。我想知道他们是否可以检查/这个值是多少?
谢谢!
关于这个问题:
它说默认 SQLite 存储在 10 亿个。这与实际站点相同。
但是,正如该人所说,它可能会更少。我想知道他们是否可以检查/这个值是多少?
谢谢!
字符串或 BLOB 的最大长度
SQLite 中字符串或 BLOB 中的最大字节数由预处理器宏 SQLITE_MAX_LENGTH 定义。该宏的默认值为 10 亿(1 亿或 1,000,000,000)。您可以使用如下命令行选项在编译时提高或降低此值:
-DSQLITE_MAX_LENGTH=123456789
当前的实现只支持长度为 231-1 或 2147483647 的字符串或 BLOB。一些内置函数,如 hex() 在此之前可能会失败。在对安全敏感的应用程序中,最好不要尝试增加最大字符串和 blob 长度。事实上,如果可能的话,最好将最大字符串和 blob 长度降低到几百万的范围内。
在 SQLite 的部分 INSERT 和 SELECT 处理期间,数据库中每一行的完整内容被编码为单个 BLOB。所以 SQLITE_MAX_LENGTH 参数也决定了一行的最大字节数。
无法在运行时读取 Android 中的 SQLite 限制。(SQLite在其 C API中为此提供了一个函数,但 Android 并未公开此函数。)
无论如何,我不知道有哪个 Android 供应商降低了 SQLite 的任何限制。(通常,当他们在自己的应用程序中需要它或尝试优化时,他们会增加一些限制或启用某些选项,但他们从不费心去改变一些东西。)