JSON文件VS SQLite android

时间:2011-12-28 04:53:28

标签: android performance json sqlite csv

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

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

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

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

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

还有其他想法吗?

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

5 个答案:

答案 0 :(得分:13)

当您希望将来保存和使用数据时,主要使用

Sqlite。在您的情况下,数据每5 minutes都在变化,因此最好有JSON,因为每次Database connection storeretrieve 5 minutes之后需要一些时间。

<强>更新

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

答案 1 :(得分:11)

SQLite的优点:

  • 更改为ACID
  • 您可以更快地提出复杂的请求(例如&#34;仅使用带有(C / D)&gt; E&#34的项目给我字段A,B;)
  • 我认为大数据更紧凑(整数存储为整数而不是一串个别数字)
  • 只有一个文件
  • 您可以轻松地将旧数据与新数据合并
  • 您可以更新当前数据,即使在使用时也是如此
  • 可以处理并发

JSON / CSV的优点:

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

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

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

答案 2 :(得分:4)

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:-7)

JSON和SQLite的目的完全不同

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