好的,所以两大领域是:备份和更改
备份
根据您选择的数据库引擎,备份需要锁定/转储/解锁。数据库越大,锁定的时间就越长。您可以使用一些功能(主/从)来允许热同步(没有锁的备份),但是备份存在无法完全覆盖数据集的风险,并且数据库的规模仍然是一个因素。如果大文件只是文件(而不是 DB BLOBS),则只需为文件系统制定备份策略,并且由于它们可能是静态的,这仅意味着存储多个副本(这甚至可以在上传时设计- 存储在服务器 A 和服务器 B)。
改变
您希望您的系统保持不变吗?听起来你会有缩放问题。随着系统的增长,您是否可以将数据库移动到另一台服务器,将文件存储移动到另一台服务器或 SAN(或 S3 等)?如果您已将其全部锁定在数据库中,则必须依靠仅数据库的解决方案来处理膨胀的大小(大型昂贵的服务器、主/从等)。当然,您可以将文件存储在一个数据库中(较少的备份要求,不会弄乱您的数据数据库)和另一个数据库中的其他数据......但是文件系统是一种数据库。
所以
因此,对于备份和扩展,将大文件存储为文件而不是 BLOB 是一个更好的解决方案。如果文件很小(例如低 MP JPG),则平衡可能会发生变化。但是对于大文件,数据库处理的开销以及它对数据库服务器的额外负载要求是没有意义的。让他们分开。