我想知道 Room Database 的最大可用大小是多少?文档中没有相关说明。
是否有编程选项可以设置数据库大小?
我已经查阅了文档,但未能找到任何信息。
我想知道 Room Database 的最大可用大小是多少?文档中没有相关说明。
是否有编程选项可以设置数据库大小?
我已经查阅了文档,但未能找到任何信息。
由于 Room 只是 SQLite 的一个抽象层。Room 具有与 SQLite 相同的限制。
字符串或 BLOB 的最大长度 默认大小为 1 GB,最大大小为 2.147483647
列的最大数量 默认大小为 2000,最大大小为 32767
SQL 语句的最大长度 默认大小为 1 MB,最大大小为 1.073741824
联接中允许的最大表数 默认为 64 张表
附加数据库的最大数量 默认为 10,最大大小为 125
表中允许的最大行数 最大大小为 18446744073.709552765
最大数据库大小 140 TB,但它将取决于您设备的磁盘大小。
来自 SQLite 文档 https://www.sqlite.org/limits.html
我也曾经想过这个问题。由于Room使用SQLite,因此以下是SQLite数据库网站关于SQLite数据库最大大小和在巨大大小下的性能的说明。
每个数据库都由一个或多个“页面”组成。在单个数据库中,每个页面的大小相同,但是不同的数据库可以具有介于512和65536之间的2的幂次方的页面大小。数据库文件的最大大小为2147483646个页面。在页面大小的最大值为65536字节的情况下,这相当于最大约为1.4e + 14字节(140万亿字节,或128 tebibytes,或140,000 GB或128,000 gibibytes)的数据库大小。
由于开发人员无法访问能够达到此限制的硬件,因此尚未测试此特定上限。但是,测试确实验证了当数据库达到底层文件系统的最大文件大小(通常远小于最大理论数据库大小)并且由于磁盘空间耗尽而无法增长时,SQLite会正确且明智地运行。
我认为任何应用程序都不会消耗甚至一小部分这样的大小。