存储在内存或本地数据库中

Store in memory or in local database

我正在开发一个应用程序,我需要在其中从 MySQL 服务器收集 5 年的每日数据(因此,table 大约有 1825 行,其中大约 6 , 7 列).

因此,为了处理这些数据,我可以在检索到数据后将其存储在本地 SQLite 数据库中,或者将其保存在内存中。

我承认,到目前为止,我能找到的将其存储在本地数据库中而不是仅仅使用已经加载的内容的唯一优势是在用户下次打开时可以访问数据应用程序。

但我想我可能没有考虑到所有重要因素。

我应该考虑哪些因素来决定是将数据存储在本地数据库中还是保留在内存中?

此致, 尼古拉斯·赖克特

恕我直言,你想多了。您说的是少量数据:2K 行对于 MySQL 服务器来说不算什么。

因此,我建议您保持应用简单。当您的应用程序需要这些行时,请从 MySQL 中获取它们。如果您明天再次 运行 该应用程序,请再次 运行 查询并再次获取它们。

这些行是某些复杂查询的结果吗?为了简单起见,您可以考虑从查询中创建一个 VIEW。另一方面,您可以轻松地将查询保留在您的应用程序中。

这些行是耗时查询的结果吗?在这种情况下,您可以在 MySQL 中创建一个 table 来保存您的历史数据。这样,您只需对较新的数据进行耗时的查询。

无论如何,恕我直言,为您的应用添加一些替代存储技术(无论是 RAM 还是本地 sqlite 实例)都是不值得的。保持简单™。

如果您要将数据存储在本地,则必须弄清楚如何使其持久化。 sqlite 就是这样做的。我不清楚 RAM 是如何做到这一点的,除非你将它转储到文件系统。