将PDF文件保存在数据库或文件系统中

5
在我的网站项目中,我需要上传最终用户的PDF文件并保存它们。我猜每3个月会收到大约2000个PDF文件,每个PDF文件大小为2MB。最好的解决方案是什么?将文件保存在硬盘上(文件夹中)并将文件地址保存在数据库中,还是直接将文件保存在数据库的blob字段中(MySQL)?
顺祝商祺
2个回答

11

将大量二进制数据保存为BLOB不是一个好主意,因为与使用常规文件系统相比,其优势微不足道且增加了DBMS的负担。将文件存储在磁盘上,并将文件名存储在数据库中是一个更好的选择。

需要记住的一件事是要避免将所有文件放入单个目录中(这样做会在访问文件时减慢文件系统)。将它们放入子目录中,并使用文件名的前几个字符作为子目录的名称。


1
+1 我之前开发过一个应用程序,每天可以生成数千个PDF文件,并要求保存所生成的PDF文件。我是这样实现的。此外,将PDF文件保存到操作系统而不是作为BLOB意味着可以在不必通过数据库访问的情况下查看PDF文件,也可以轻松地将其移动到另一个驱动器。 - CResults

1

我认为一个好的经验法则是决定哪种资源对你来说更便宜,磁盘空间还是内存。如果是后者,则选择基于数据库的解决方案,否则使用文件系统。

话虽如此,在MySQL中将存储2MB PDF文件作为BLOBs并不高效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接