Android Sqlite String的最大长度?

时间:2013-04-19 04:07:03

标签: android sqlite max

参考这个问题:

How SQLite on Android handles long strings?

它表示默认的SQLite存储量为10亿。这与实际网站相同。

然而,正如该人所述,它可能会更少。我想知道他们是否有办法检查这个值是什么?

谢谢!

2 个答案:

答案 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参数也决定了最大数量   连续的字节。

来自http://www.sqlite.org/limits.html

答案 1 :(得分:5)

在运行时无法读取Android中的SQLite限制。 (SQLite在其C API中有a function for this,但Android不会公开它。)

在任何情况下,我都不知道任何Android供应商已经减少了SQLite的任何限制。 (通常情况下,当他们在自己的应用程序中需要或者尝试优化时,他们会增加一些限制或启用某些选项,但他们从不打扰改变其他内容。)