【问题标题】:Maximum SQLite Database Size in Android ApplicationAndroid 应用程序中的最大 SQLite 数据库大小
【发布时间】:2013-08-27 07:03:45
【问题描述】:

我是 Android 开发新手。

目前,我正在开发一个拥有大量数据的 Android 应用程序。

所以我认为我应该将其中一些数据存储在本地。

我有一个包含 2 个表的数据库。

Table-1 的大小为:4.5 MB 表 2 的大小为:当前为 3.5 MB。

即总共大约 8.0 MB,但将来可以增加数据库大小,可能会达到 10 MB。

表 1:行 (14927) 和列 (17) 表 2:行 (9903) 和列 (38)

我的疑问是我是否可以在本地的 android 应用程序中存储这么多数据,否则应用程序的速度会受到影响。

我不想将这些数据存储在外部存储中。而且我不能将它存储在服务器数据库中,因为我必须在应用程序中多次使用这些数据。而其他数据在服务器上,因为它必须集中使用。

这是我的观点。但是请给我你的建议。

如果有这么大的数据库怎么办。

请帮助我。提前谢谢...:)

【问题讨论】:

    标签: android sqlite android-sqlite


    【解决方案1】:

    最大数据库大小约为 1.4e+14 字节(140 TB 或 140,000 GB)。

    参考:The Official SQLite Documentation and limits

    14.最大数据库大小

    每个数据库都包含一个或多个“页面”。在单个数据库中,每个页面的大小相同,但不同数据库的页面大小可以是 512 到 65536 之间的 2 的幂,包括 512 和 65536。数据库文件的最大大小为 2147483646 页。在最大页面大小为 65536 字节时,这相当于最大数据库大小约为 1.4e+14 字节(140 TB,或 128 TB,或 140,000 GB 或 128,000 GB)。

    【讨论】:

    • 请注意,这是理论上的限制。在可预见的将来,Android 机器不太可能支持这样的数字。更好的答案是通过提供有关现实生活使用的建议来扩展这个答案。
    【解决方案2】:

    你可以毫无问题地存储这么多数据,我正在开发一个数据库,它的大小约为 35MB。

    您可以使用缓存来加快获取数据的速度。

    【讨论】:

    • 您能详细说明一下缓存索引吗?
    【解决方案3】:

    我不想将这些数据存储在外部存储中。我不能 将其存储在服务器数据库中,因为我必须多次使用这些数据 应用程序。

    因此,如果您不想使用外部存储,唯一的方法就是使用内部存储(您也不想使用远程服务器)。通常当数据库较大时,通常使用外部存储来优化应用程序。但这也取决于数据 e.q. 的特征。如果它们敏感或不敏感,那么外部存储并不总是赢。

    但在您的情况下,我认为您的应用程序性能不会降低。只有对数据库的查询才能比超过 10-100 行的查询持续更长的时间(可以通过创建适当的索引来优化查询)。

    但有一些提高性能的建议:

    • 尝试删除长时间不使用的记录
    • 您可以压缩数据以减小数据库大小

    【讨论】:

      【解决方案4】:

      您可以在 sqlite 中存储这么多数据。这可能会影响对您的表而不是您的应用程序的查询搜索,并且您应该始终在单独的线程而不是主线程上与您的数据库进行交互。 但是您应该考虑从表中删除用户不再需要的行,这可能会释放数据库的一些负载。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-29
        • 2011-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多