如何从远程数据库加载数据存储在本地(在内存中)

时间:2013-07-08 18:06:51

标签: ios database storage local

从远程数据库加载的数据可以在iOS本地存储的最佳方式是什么。 (您不需要提供任何代码,我只是想在概念上知道最佳方式。)

例如,以Twitter for iOS为例。当它加载推文时,是否只是从远程数据库中提取推文数据并将它们存储在iPhone上的本地数据库中?或者,如果数据只是作为对象数组或类似的东西存储在本地,会更好吗?

请参阅,我想要能够使用/显示来自远程数据库的数据(例如,在动态表视图中),数据必须存储为对象,所以也许它们应该只是作为对象存储在数组中。然而,在研究这个时,我确实看到了很多关于本地数据库的文章,所以我想也许更高效的是将远程数据作为表加载并将其存储在本地数据库中并直接使用来自本地表的数据来显示数据或类似的东西。

哪一个需要更多开销:将数据存储为Tweet对象数组或本地推文数据库?

您认为在本地(内存中)存储远程数据的最佳方式是什么(对于加载类似于Twitter for iOS的应用程序的应用程序)?

我认为这引出了这个先决条件问题:当下载来自远程数据库的数据时,它是否通常作为数据库表(结果集)加载并因此存储为一个?

谢谢!

1 个答案:

答案 0 :(得分:3)

虽然将获取的数据直接放入阵列并从那里使用它很容易,但是可能会因为两个主要原因使用本地数据库而受益:可伸缩性和持久性。

如果您希望下载并显示大量数据,尝试将其一次性存储在内存中可能不安全。下载所需的任何数据,将其存储在本地数据库中,然后仅获取需要显示的相关对象,可以更具扩展性。

如果您下载数据并仅将其存储在数组中,则必须从远程数据库重新获取该数据,并在下次加载您的应用程序/视图控制器/等时重新解析,然后才能显示任何内容。而是创建一个本地数据库,用于存储下载的数据,以便在从远程源获取新数据时,可以在下次加载时显示它。

虽然在创建数据库时会产生一些初始开销,但是为您提供的可扩展性和持久性足以保证这一点。将远程数据库的状态存储在本地数据库中是一种非常常见的做法。

但是,如果您不介意用户必须等待每次加载时获取此数据,或者提取的数据量相对较少或数据非常简单,您将节省时间和精力跳过本地数据库。