我将开发一个包含大量数据的android应用程序(带有一些行的json文件和带有大量行的图形数据的CSV),这个数据每5分钟更改一次并替换所有以前的数据(或大多数)。 / p>
设计此方法的最佳方法是什么?我有两个选择:
将所有数据保存在sqlite数据库中,并通过IntentService进行同步。
将数据保存在json和csv文件中,并每隔5分钟更换一次。
哪种方法会有最佳表现? 考虑到解析文件,排序数据,下载时间和数据一致性的时间。
还有其他想法吗?
PD:我也需要一个缓存系统,如果我没有互联网,我需要以前存储的数据
答案 0 :(得分:13)
Sqlite
。在您的情况下,数据每5 minutes
都在变化,因此最好有JSON
,因为每次Database connection
store
和retrieve
5 minutes
之后需要一些时间。
<强>更新强>
我也有相同的应用程序,每次数据都在变化。在那种情况下,我使用Map<K, V>
和ArrayList
来维护这些值,因为每次数据都在变化,我认为每次都不可能将数据存储在Sqlite中。它需要很多时间来执行DB Connection存储,检索,更新Sqlite中的数据。
答案 1 :(得分:11)
SQLite的优点:
JSON / CSV的优点:
对于原始问题,整个删除/替换数据使JSON / CSV成为赢家。
但是,如果应用程序每10秒检索一次部分数据并将其与前一个数据合并/更新,那么SQLite将是更好的选择。
答案 2 :(得分:4)
我建议使用JSON或某种类型的对象序列化,除非:
答案 3 :(得分:0)
理想情况下,这应取决于您是否需要以前的数据,以便将其与当前数据进行比较等等。作为一个拇指规则,当您需要在稍后阶段存储和检索数据时,我会使用SQLite。如果数据仅用于显示,我宁愿将其保存在程序存储器中。请注意,这不涉及文件操作。
答案 4 :(得分:-7)
JSON和SQLite的目的完全不同