【问题标题】:SQLite schema, database size, access speed, updates doubtsSQLite 架构、数据库大小、访问速度、更新疑点
【发布时间】:2012-02-28 03:01:11
【问题描述】:

在我的 android 应用程序中,我计划在本地存储数据以减少互联网的数据使用量并允许离线访问。我当前的架构包含 9 列。其中 2 列用于存储 url,1 列用于存储 140 个字符的纯文本,1 列用于日期时间,2 列用于存储 100 个字符的纯文本,3 列用于整数。要插入的记录数取决于用户,即他想要多少记录。他可以随时删除它们。一次插入多条记录。与删除相同。 现在我的问题是,这会导致应用程序在插入、删除和维护方面过载吗?我首先想到将这些数据存储在文件系统(xml 文件)中,但随后删除记录可能很困难。所以我应该选择 SQLite 方法还是 xml 文件作为存储。也欢迎其他解决方案。

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

    是的,是的,我绝对会说选择 SQLite。您所描述的架构实际上非常适中,您概述的使用模式并不重要。

    SQLite 旨在能够以有效的方式将相当大量的数据保存在设备的存储中。这肯定比以 XML 格式存储数据更可取,因为 XML 格式不是特别有效,而且当您考虑尝试获取单个记录时速度会慢一个数量级。

    我自己编写的应用程序包含超过 15 个不同的表,每个表 >10 列,这是 Sqlite 轻松处理的要求。

    【讨论】:

      【解决方案2】:

      对于您想要做的事情,我会推荐 SQLite 而不是 xml。 SQLite 将会更快更容易恕我直言。我已经完成了两者的阅读。从未做过插入和更新。

      必须打开 xml 文件,然后解析以从中获取任何数据,关闭 :0) 你是正确的,删除​​、更新、插入 xml 文件会更加困难。

      【讨论】:

      • 问题是,我使用本地存储作为缓存以及从服务器下载的图像。如果 SD 卡可用,则使用它,如果没有,则使用内部内存。没有限制下载多少图像以及在 sqlite 数据库上插入多少图像,因为它是用户的选择。但同时,我不希望我的应用程序没有响应或花费太多时间来完成所有这些操作。
      • 不确定您对 Android 开发的熟悉程度,但我使用 AsyncTask 来确保这些事情可以尽快发生并且不会占用您的 UI 线程(继续响应)。此外,您可以将数据库中的图像和其他文件的位置存储在 SD 卡或内存中。
      • 您也可以考虑在设备不使用时使用服务来完成一些工作...
      • = 是的,我熟悉 AsyncTask。事实上,我正在使用它从服务器下载 xml,然后使用线程下载图像。你说得对,我应该选择 SQLite。谢谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      • 2012-11-28
      • 1970-01-01
      • 2012-01-23
      • 2017-12-16
      • 1970-01-01
      相关资源
      最近更新 更多