哪个是在内存中保存对象或在某些文件/数据库中存储数据之间的更好方法

时间:2017-06-09 06:59:49

标签: algorithm design-patterns memory-management data-structures architecture

我正在开发一个仪表板项目,该项目连接两个或三个bug跟踪系统,如jira,mantis等。并在Web应用程序中显示数据的图形表示。

我在做什么:

当添加任何新项目时,我连接并从这些系统获取数据并将数据存储在数据库中的一个表中。之后会有一个Web应用程序,然后在表格中处理这些数据并显示图表和表格。

为了更新,我创建了一个Windows服务,然后继续连接错误跟踪系统和数据库中的更新表(项目配置数据也存储在另一个表中)

问题:

  1. 如果我不将错误跟踪系统数据存储到数据库中并将该数据存储到对象中,该怎么办?将创建一个Web服务,它将在更新时触发更新事件,然后刷新视图?

  2. 什么是正确的方法?将整个项目数据存储到内存而不是数据库是否正确。如果有大量项目说300或600怎么办?

  3. 我应该如何决定何时将数据存储在内存中以及何时存储在数据库中?

  4. 两种方式的优点和缺点?

1 个答案:

答案 0 :(得分:0)

  

如果我不将错误跟踪系统数据存储到数据库和存储中该怎么办?   将数据转化为对象。将创建一个将触发的Web服务   更新后更新事件,然后刷新视图?

你失去了“数据库”的两个好处:一致性(崩溃后数据仍然存在),你需要更多的RAM,这比磁盘/闪存更昂贵和稀缺。
数据库还使用标准库提供更简单的版本控制(因此,如果需要,您可以回滚到以前的版本)。


无论哪种方式,您都应该使用支持您所需操作的库,而不是尝试重新发明轮子。

  

什么是正确的方法?将整个项目数据存储到是否正确   内存而不是数据库。怎么会有大量的   项目说300或600?

如果您的服务器崩溃/重新加载以进行更新,并且您可以负担RAM,那么如果您不关心丢失数据 - 您可以使其正常工作。否则,使用数据库可能是个更好的主意。

  

我应该如何决定何时将数据存储在内存中以及何时存储在数据库中?

你想要对失败多么宽容,以及你能承受多少内存。

  

两种方式的优点和缺点?

数据库的优点:更好的一致性,更便宜
对象的优点:速度更快(磁盘读取比RAM慢),系统状态的依赖性较小。