哪个好的练习将上传的文件存储在DB中或将其存储在Filesystem中

时间:2010-05-11 06:56:38

标签: c# asp.net sql sql-server-2005

我的ASP.NET应用程序中有一个File Uploader使用C#,我们可以上传任何类型的图像,文档,pdf等。

我将它存储在Filesystem中,并且只有DB中的文件名。 我怀疑的是我们可以将整个文件存储在数据库中。请说明哪种方法是好的,以及为什么需要使用它。

文件系统存储或SQL DB存储。

4 个答案:

答案 0 :(得分:4)

这里问了几乎同样的问题。检查答案:

Working with images in WCF

这主要取决于文件的大小。这是一篇很好的文章。

To BLOB or Not To BLOB

对于少于256kb的文件,存储在VarBinary列中的DB中效率更高。

我们将文件存储在具有256kb限制的VarBinary列中的MS SQL Server中,并且工作正常。

希望它有所帮助。祝你好运!

答案 1 :(得分:2)

这是议论主观,但我会说在文件系统上存储文件更好。这就是文件系统的设计目标,SQL Server 2008具有new file type,允许您自动执行此操作甚至使用事务。

答案 2 :(得分:0)

取决于:

  1. 文件有多大,虽然可以在RDBM中有效处理大blob
  2. 是读还是重?
  3. 该资源的并发请求数
  4. 您使用的是其他任何缓存机制吗
  5. 您是否有可用的SAN或群集文件系统
  6. 简而言之,没有具体细节,最佳实践很难给出。只是取决于您的约束和要求,如任何任务。

答案 3 :(得分:0)

除了似乎专注于性能的其他答案之外,我还将访问权限添加为另一个问题。如果文件包含机密数据或需要审核对文件的访问,如果文件存储在数据库中,有时可以更容易管理。