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

Tom*_*rho 6 mysql database blob

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

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

  1. 将附件直接保存为数据库字段类型
  2. 将数据库中的目录路径保存到数据库,并将实际文件保存到服务器

现在,据我所知,这两种方法都有利有弊.

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

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

我倾向于采用第一种方法,但为此我希望得到以下答案:

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

Sam*_*Sam 6

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

  • OTOH,tt可能会使数据库*必**庞大!而且,如果文件存储发生故障,它将随身携带您的文件。可能有一些可信的论据对您有利,但我认为这些不是事实。 (2认同)