2013-04-27 42 views
1

我正在设计一个存储许多大文件的解决方案。从我在stackoverflow上读到的内容来看,像Mongodb这样的数据库系统是存储大量文件的最佳方式(来源:Scalable File Storage)。为什么?当然,我最好将文件存储在文件系统中的可扩展系统上,比如亚马逊,并给每个文件一个ID。许多大文件的PHP存储

,试图寻找一个答案我已经看过:

到目前为止,我一个ppreciate:

  1. 存储在文件系统上会使服务器迁移困难得多。
  2. 对于可以保存在目录中的文件和文件夹的数量是有限制的。

这两点似乎都没有说服我,值得编程文件的额外工作保存在数据库中。如果我在其中存储大文件而不是直接存储在文件系统中,它也会增加数据库灾难性损坏的风险。我目前正在考虑将这些文件存储在Amazon S3解决方案中。你能否让我知道是否疯狂和/或如果我忽视了什么?

+1

我不确定你在做什么,但如果涉及金钱,我会使用第三方来确保他们将被安全地存储。然而,在大多数情况下,我会将它们存储在文件系统中。事情是,你需要想出一个好的数据库模式来组织文件和他们所有的信息。你必须问自己的另一个问题是,这些文件是否应该受到保护?如果是这样,您需要采取额外步骤以确保无法通过URL操作轻松访问它们。 – 2013-04-27 11:16:00

+1

存储大文件的最佳方式是在服务器的文件系统上,或在cdn上,而不是在数据库中 - 只存储对数据库中文件的引用 – 2013-04-27 11:16:13

+1

我会使用S3。我会考虑开发自己的系统的唯一条件是是否存在符合S3要求的合规要求。在小范围内,建立一个系统来构建一个与s3具有相同性能/可靠性的系统将是非常昂贵的。 – datasage 2013-04-27 11:21:34

回答

0

数据库是为数据而不是文件!我遇到过很多人喜欢将它存储到数据库的情况,无论是mangodb还是其他。从逻辑上讲,这不值得。

您的问题“是否值得编程?”;如果你偶尔做一次,那么严重不会。将东西放入数据库需要很多努力。然而,如果你是一个开发人员,一旦你习惯了它,你就会做到这一点,即使它不值得这样做:)

我投票选择文件系统存储文件而不是数据库。而对于困难没有。的文件,你会找到一种方法来解决它肯定。

+0

数据库存储也有好处,这使得它值得,事实上许多cdns存储在数据库中存储的数据块格式的文件数据 – Sammaye 2013-04-27 11:51:15

+0

@Sammaye,完全同意你的看法。但是CDN是完全成熟的系统,比我们的普通托管服务器要好得多。 – 2013-04-27 12:00:16

+0

虽然这是真的,但在数据库托管之前,要谨慎考虑,因为没有真正的解释:) – Sammaye 2013-04-27 12:31:01

0

如果你想存储自己托管的服务器上的文件,那么你可以选择MongoDB。 MongoDB是通过自托管服务器存储大文件数据的最佳选择。但是您希望避免维护自己托管的服务器,那么您可以选择Amazon S3。

相关问题