JSON文件VS SQLite android

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

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

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

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

哪种方法会有最佳表现? 这考虑了解析文件,排序数据,下载时间和数据一致性的时间。

还有其他想法吗?

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

当您希望将来保存和使用数据时,主要使用Sqlite 。 在您的情况下,数据每5 minutes更改一次,因此最好使用JSON因为每次进行Database connection store并在5 minutesretrieve将需要一些时间。

更新:

我也有相同的应用程序,每次数据都在变化。 在那种情况下,我使用MapArrayList来维护这些值,因为每次数据都在变化,我认为每次都不可能将数据存储在Sqlite中。 它需要很多时间来执行DB Connection存储,检索,更新Sqlite中的数据。

SQLite的优点:

  • 变化是ACID
  • 您可以更快地制作复杂的请求(例如“仅使用(C / D)> E的项目给我字段A,B”)
  • 我敢打赌大数据更紧凑(整数存储为整数而不是一串个别数字)
  • 只有一个文件
  • 您可以轻松地将旧数据与新数据合并
  • 您可以更新当前数据,即使在使用它时也是如此
  • 可以处理并发

JSON / CSV的优点:

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

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

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

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

  • 您需要ACID合规性才能进行写入操作
  • 您需要报告可能涉及将数据复制到外部RDBMS的数据
  • 您希望加入那些过度使用/滥用数据库的人,就像现在常见的那样

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

JSON和SQLite的目的完全不同

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