在sql server中存储二进制文件



我正在编写一个mvc/sql服务器应用程序,该应用程序需要将文档(word、pdf、excel等)与数据库中的记录关联起来(支持sql server 2005)。共识是最好将文件保存在文件系统中,并且只在数据库中保存文件的路径/引用。然而,在我的场景中,审计跟踪是极其重要的。我们已经有了一个框架,无论何时在系统中进行更改,都可以记录审计信息,因此最好也使用数据库来存储文档。如果文档存储在它们自己的表中,并对相关记录使用FK,性能是否会成为一个问题?我知道备份/恢复的潜在问题,但如果文档表变得很大,数据库性能会在某个时候开始下降吗?如果这有什么不同的话,我永远不会期望这个系统需要服务近100个并发请求,可能是几十个请求。

将文件作为blob存储在数据库中会增加数据库的大小,并且肯定会影响备份,这是事实。

数据库和代码服务器是否相同需要考虑很多因素。

因为它恰好是代码服务器请求并从数据库服务器获取数据,然后从代码服务器到客户端。

如果文件大小太大,我会选择文件系统并将文件路径保存在数据库中。

否则,你可以将文件作为博客保存在数据库中,它肯定会更安全,也不会受到病毒等的攻击。

最新更新