将附件保存到数据库:blob vs路径引用

时间:2013-12-21 16:25:37

标签: mysql database blob

我正在设计一个系统,在这个系统中,可以创建一个条目,然后向该条目添加附件,然后将其保存到数据库中。但是,我对如何实现附件处理有两种想法。

我正在两种方法之间展开斗争:

  1. 将附件直接保存为数据库字段类型
  2. 将数据库中的目录路径保存到数据库并将实际文件保存到服务器
  3. 现在我可以看到这两种方法都有利有弊。

    第一种方法会将所有数据保存在同一个地方,以便我可以轻松地将其移动到其他位置。此外,就“数据的位置”而言,它保持一致。另一方面,我听说保存这样的东西非常耗费资源,数据库大小也会大量增加。

    第二种方法将允许数据库保持容易管理的数据字段,如文本和数字,而服务器上更重的东西。如果需要,这还允许更直接地访问文件。另一方面,数据是分离的,更难以跟踪,并且还需要引入文件系统访问以便检索所述文件。

    我倾向于采用第一种方法,但为此我希望能够回答以下问题:

      

    如何直接将数据库中的附件保存到数据库大小和   应用程序性能?

2 个答案:

答案 0 :(得分:5)

不要将文档作为blob存储在数据库中。存储路径。 RDBMS不是文档存储。 MySQL不是为此目的而设计的,将文档存储在MySQL中会使数据库大小变得不必要,数据检索几乎不可能,备份将花费很长时间,如果数据库出现问题,所有文件都会随之而来。文件存储几乎总是比RDBMS更好的文件存储选择。

答案 1 :(得分:1)

我有类似的问题,我认为我采取的方法取决于所需的附件类型 在我的情况下,我所做的是打开附件,主要是文本,只需将数据放在数据库中(而不是简单地存储附件的数据库)

这使我能够以简单的方式查看内容(当然这与您期望的更新数量有关)