【问题标题】:JSON file VS SQLite androidJSON文件VS SQLite android
【发布时间】:2012-01-28 22:27:13
【问题描述】:

我将开发一个包含大量数据的 android 应用程序(包含一些行的 json 文件和包含很多行的图形数据的 CSV),这些数据每 5 分钟更改一次并替换所有以前的数据(或大部分)。

设计这个的最佳方法是什么?我有两个选择:

  • 将所有数据保存在 sqlite db 中,并通过 IntentService 进行同步。

  • 将数据保存在 json 和 csv 文件中,并每 5 分钟更换一次。

哪种方法的性能最好? 这考虑了文件解析、数据排序、下载时间和数据一致性的时间。

还有其他想法吗?

PD:我也需要一个缓存系统,以防万一我没有互联网并且我需要以前存储的数据

【问题讨论】:

  • 从哪里获取大量数据?
  • 来自我们网络服务器的财务数据

标签: android performance json sqlite csv


【解决方案1】:

SQLite 的优点:

  • 变化是酸性的
  • 您可以更快地提出复杂的请求(例如,“只给我来自 (C/D)>E 项的字段 A、B”)
  • 我敢打赌,对于大数据,我会更加紧凑(整数存储为整数,而不是单个数字的字符串)
  • 只有一个文件
  • 您可以轻松地将旧数据与新数据合并
  • 即使在使用时,您也可以更新当前数据
  • 可以处理并发

JSON/CSV 的优势:

  • 更易于调试(纯文本)
  • 更快地进行整体更新(复制新文件 + 删除旧文件)

对于原始问题,数据的整个删除/替换使 JSON/CSV 成为赢家。

但是,如果应用程序每 10 秒检索一次部分数据并将其与前一个数据合并/更新,SQLite 将是更好的选择。

【讨论】:

    【解决方案2】:

    Sqlite 主要用于您希望保存数据并在将来使用时使用。在您的情况下,每个5 minutes 都会更改数据,因此最好使用JSON,因为每次在5 minutes 之后制作Database connection storeretrieve 都需要一些时间。

    更新:

    我也有相同的应用程序,其中数据每次都在变化。在那种情况下,我使用Map<K, V>ArrayList 来维护这些值,因为每次数据都在变化,我认为每次都将数据存储在Sqlite 中是不可行的。在 Sqlite 中执行 DB Connection 存储、检索、更新数据需要大量时间。

    【讨论】:

      【解决方案3】:

      我建议使用 JSON 或某种类型的对象序列化,除非:

      • 写入操作需要符合 ACID 标准
      • 您需要针对可能涉及将数据复制到外部 RDBMS 的数据进行报告 或
      • 您希望加入当今常见的过度使用/滥用数据库的同谋者行列

      【讨论】:

      • 嗯....有人支持我,大概也是最后一点。也许我需要开始一个运动。无论如何,好的旧对象序列化通常是要走的路。
      【解决方案4】:

      理想情况下,这应该取决于您是否需要以前的数据,以便将其与当前数据进行比较等等。作为一个经验法则,当您需要在稍后阶段存储和检索数据时,我会使用 SQLite。如果数据仅用于显示,我宁愿将其保存在程序内存中。请注意,这不涉及文件操作。

      【讨论】:

      • 我也需要一个缓存系统,以防万一我没有互联网,我需要以前存储的数据
      • 这很好,除非您以正确的格式获取新数据,否则不要覆盖/删除数据。这样,您的旧数据将继续在内存中并被使用。
      【解决方案5】:

      JSON 和 SQLite 的用途完全不同

      • JSON = 用于在服务器和客户端之间发送和接收数据。
      • SQLite= 用于存储数据。

      【讨论】:

      • REST 用于在服务器和客户端之间发送和接收数据。 JSON 和 SQLite 都存储数据。但是是的,您可以使用 RESTful 方法更快地发布 JSON 数据。
      • JSON 也用于存储数据。
      • Json其实是非常常用的数据存储,如果数据可以通过连接分到多个单独的表,SQLite会更好。
      • 也可以通过 http 发送 sqlite db-files...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-12
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2011-06-25
      • 1970-01-01
      相关资源
      最近更新 更多