我正在设计一个系统,可以在其中创建一个条目,然后向该条目添加附件,然后将附件保存到数据库中。但是我对如何实现附件处理有两种看法。
我在两种方法之间作斗争:
- 将附件以blob字段类型直接保存到数据库
- 将目录路径保存到数据库,并将实际文件保存到服务器
据我所知,这两种方法各有利弊。
第一种方法会将所有数据保存在同一个位置,这样我就可以根据需要轻松地将其移动到其他地方。就“数据在哪里”的问题而言,它也使事情保持一致。另一方面,我听说保存这样的东西非常耗费资源,而且数据库的大小会大幅增长。
第二种方法将允许数据库保留易于管理的数据字段,如文本和数字,而更重的内容在服务器上。如有必要,这也将允许更直接地访问文件。另一方面,数据是分离的,更难以跟踪,并且还需要引入文件系统访问权限才能检索所述文件。
我倾向于第一种方法,但为此我希望得到以下答案:
How would saving attachments directly to database impact on the database size and application performance?
最佳答案
不要将文档作为 blob 存储在数据库中。存储路径。 RDBMS 不是文档存储。 MySQL 不是为此目的而设计的,在 MySQL 中存储文档会使数据库变得不必要地庞大并且几乎不可能检索数据,进行备份将花费很长时间,如果数据库发生问题,所有文件都会随之消失。文件存储几乎总是比 RDBMS 更好的文件存储选择。
关于mysql - 将附件保存到数据库 : blob vs path reference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20721051/