将静态数据存储在数组或数据库中?

Zhu*_*Tao 7 database

我们总是有一些静态数据可以作为数组存储在文件中,也可以存储在基于Web的项目的数据库表中.那么哪一个应该是首选?

在我看来,数组有一些优点:

  1. 更灵活(它可以是任何结构,指定一个非常复杂的关系)
  2. 更好的性能(它将被加载到内存中,与数据库的I/O操作相比,它具有更好的读/写性能)

但我的同事认为他更喜欢DB方法,因为它可以保持统一的数据持久性接口,并且更加灵活.

那应该是首选的?或者我们如何选择?或者我们应该在某些场景中选择一个而在其他场景中更喜欢?什么是场景?

编辑:

让我澄清一下.正如本杰明对标题所做的更改一样,我们想要存储在数组(文件)中的数据不会经常更改,这意味着代码不会更改运行时数组的值.如果数据变化非常频繁我无疑会使用DB.这就是我发这样一个帖子的原因.

有时很难存储一些非常复杂的关系,例如:

Task = {
  "1" : {
    "name" : "xx",
    "requirement" : {
          "level" : 5,
          "money" : 100,
     }
   ...
 }
Run Code Online (Sandbox Code Playgroud)

就像上面的代码示例(一个python dict或者你可以把它想象成一个数组)一样,需求字段很难存储在DB中(直接在DB中存储像pickle对象这样的结构?我觉得不太好).所以在这种情况下,我会更喜欢数组.

那么你的想法是什么?在这种情况下,我们应该更喜欢数组到DB,对吗?

问候.

gra*_*fic 5

让我务实/客观:

  • 你是否在运行时写入数据?是的:Db,No:文件
  • 您是否每周更新一次数据?是的:Db,No:文件
  • 发布更新的数据文件是一件痛苦的事吗?是的:Db,No:档案,
  • 你经常读这些数据吗?是:文件/缓存,否:Db
  • 更新该数据文件是一件痛苦的事情,您需要额外的工具吗?是:db,No:文件

当然,我已经忘记了其他一些观点,但我想基础知识是存在的.


Ben*_*ard 0

这取决于您正在查看哪种数据,以及是否需要定期更新。

我倾向于将大多数内容(非配置数据)保留在数据库中,即使数据不会重复(例如数千行)。数据库比平面文件更容易扩展,如果您的系统开始快速增长,您的平面文件可能会成为系统的负担。