【问题标题】:Which is good Practice storing a uploaded File in DB or storing it in Filesystem将上传的文件存储在数据库中或将其存储在文件系统中是一种好习惯
【发布时间】:2010-05-11 06:56:37
【问题描述】:

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

我将它存储在文件系统中,并且在数据库中只有文件名。 我的疑问是我们能否将整个文件、图像存储在数据库中。告诉我哪些是好的做法以及我们为什么需要使用它。

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

【问题讨论】:

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


    【解决方案1】:

    这里提出了几乎相同的问题。检查答案:

    Working with images in WCF

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

    To BLOB or Not To BLOB

    对于小于 256kb 的文件,存储在数据库中 VarBinary 列的效率更高。

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我认为是主观的而不是争论的
      【解决方案3】:

      取决于:

      1. 文件有多大,虽然大 blob 可以在 RDBM 中高效处理
      2. 是读重还是写重?
      3. 对该资源的并发请求数
      4. 您是否使用任何其他缓存机制
      5. 您是否有可用的 SAN 或集群文件系统

      简而言之,没有具体细节,很难给出最佳实践。就像任何任务一样,这取决于您的约束和要求。

      【讨论】:

      • 嘿,Bell,我对 SQL 不太熟悉,但记录的文件大小不会超过 1 或 2MB。并发请求不会太多。给我最常用的系统。
      【解决方案4】:

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

      【讨论】:

      • @ho - 是的,但是在数据库中存储一个秘密路径并让一个中间脚本传递有效负载可以给你同样的“障碍”
      • 不是真的,因为你真的不知道它是否被改变了。然后还有另一个问题是备份/恢复。在一个地方更容易。
      猜你喜欢
      • 2020-09-10
      • 2021-10-26
      • 1970-01-01
      • 1970-01-01
      • 2021-05-31
      • 2011-10-19
      • 2019-06-29
      • 2017-04-29
      • 2022-11-14
      相关资源
      最近更新 更多