就这条问题而言:
How SQLite on Android handles long strings?
它说默认的SQLite存储在10亿。这与实际站点相同。
然而,正如该人士所说,它可能会更少。我想知道这是不是一种检查/这个值是什么的方法?
谢谢!
发布于 2013-04-20 02:55:48
在安卓系统中,无法在运行时读取SQLite限制。(SQLite在其C应用程序接口中有a function for this,但安卓没有公开这一点。)
无论如何,我不知道有任何Android供应商降低了SQLite的任何限制。(通常,当他们在自己的应用程序中需要时,或者当他们试图优化时,他们会增加一些限制或启用一些选项,但他们从来不会费心去改变其他东西。)
发布于 2013-04-19 12:13:00
字符串或BLOB的最大长度
SQLite中字符串或BLOB的最大字节数由预处理器宏SQLITE_MAX_LENGTH定义。此宏的默认值为10亿(10亿或1,000,000,000)。您可以在编译时使用如下命令行选项提高或降低此值:
-DSQLITE_MAX_LENGTH=123456789
当前实现将仅支持最大长度为231-1或2147483647的字符串或BLOB。而一些内置函数,比如hex(),可能会在此之前很久就失败。在安全敏感的应用程序中,最好不要尝试增加最大字符串和blob长度。实际上,如果可能的话,您可以将最大字符串和blob长度降低到几百万之间。
在SQLite的INSERT和SELECT处理过程中,数据库中每一行的完整内容被编码为一个BLOB。因此,SQLITE_MAX_LENGTH参数还决定了一行中的最大字节数。
https://stackoverflow.com/questions/16097015
复制相似问题