【问题标题】:Hard file on the server or binary for sound and image files in SQL with ASP.Net application服务器上的硬文件或带有 ASP.Net 应用程序的 SQL 中声音和图像文件的二进制文件
【发布时间】:2009-04-02 18:20:52
【问题描述】:

我正在构建一个将使用大量声音文件和图像文件的 ASP.Net C# Web 应用程序。考虑到性能,最好将 SQL 中的所有文件存储为图像数据类型并从数据库中检索,或者将硬文件存储/存档在服务器上并将路径存储在 sql 中?除了明显的存储空间和可管理性之外,我对利弊感到好奇。

【问题讨论】:

    标签: asp.net sql optimization file


    【解决方案1】:

    我当前的客户目前正在寻找相同的选项。有一些权衡需要考虑:

    存储为 IMAGE 数据类型:

    • 您只需要备份数据库而不是数据库和文件系统上的位置
    • 您不必担心在没有使用新位置更新数据库的情况下移动文件或任何其他与指向不存在文件的指针挂起的问题

    在数据库中存储为带有路径的文件:

    • 访问速度稍快(我们将在接下来的几天内对此进行量化)

    本来我以为客户端缓存图片也会有问题。例如,当 .NET 从数据库中获取图像时,客户端浏览器无法缓存它 - 每次它看起来都像是一张新图像。然后我了解到,除非您为用户提供文件级访问权限(安全禁止),否则使用直接文件访问会遇到同样的问题。

    【讨论】:

      【解决方案2】:

      从性能的角度来看,最好将声音/图像存储为文件并仅保留对数据库中位置的引用。这将使您不必将数据从数据库传输到 Web 服务器,并在引用时通过处理程序重构“文件”。当然,缓存可以对此有所帮助,但您仍然会为每次缓存未命中付出代价。就我的钱而言,这个解决方案在需要开发的代码方面也不那么复杂,尽管您确实遇到了冲突问题,并且如果您启用上传,则需要进行一些额外的安全设置(可能)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-10
        相关资源
        最近更新 更多