使用基于文件的Web服务,我应该使用数据库还是只使用文件系统?

时间:2012-04-16 08:35:43

标签: database git filesystems

我正在编写一个文档编辑Web服务,其中文档可以通过网站进行编辑,也可以在本地编辑,并通过git进行推送。我正在尝试确定文档是应该作为单独的文档存储在文件系统上还是存储在数据库中。我想知道的要点是:

  1. 如果他们在数据库中,有没有办法让git看到这些文件?
  2. 使用文件系统的开销是多少?我认为操作系统正在做更多的工作。我怎样才能减轻一些这个?例如,Web编辑器自动保存,缓存保存数据的最佳方法是什么,以最大限度地减少写入?
  3. 一个人的规模明显好于还是差于另一个?如果一切按计划进行,这将是一项服务,其中包含数千个文档的访问和编辑。

2 个答案:

答案 0 :(得分:0)

文件系统总是比DB快,因为毕竟DB在Filesystem中存储数据!

Git在github上证明它非常有效,所以我说你坚持使用git,并解决它。

毕竟,Linus应该知道一些事情......;)

答案 1 :(得分:0)

  1. 如果文件进入数据库,git无法直接查看文件。 git将看到数据库的后备存储文件,但无法将更改与文件更改相关联。

  2. 使用数据库的开销高于使用文件系统,Carlos回答道。数据库针对事务进行了优化,它们将在内存中执行,但它们必须访问该文件。除非您将应用程序编程为在子文档级别执行数据库事务(例如:仅更改已修改的行),否则数据库将不会提高性能。大多数现代文件系统都进行缓存,你可以用一种方式“编写”,这种方式将放在RAM中,而不是用于支持存储。您需要管理应用程序中“自动保存”的粒度(每次更改?每30秒?5分钟?),但实际上,使用数据库以相同的粒度进行操作会导致相同的流量支持商店。

  3. 我认为您打算问“文件系统是否与数据库一样”? :)如果您有一些方法来按用户组织文件,并且您发现特定用户的安全问题只能访问/修改他们应该能够执行的文件(这是可行的imo),文件系统应该是可行的。