【发布时间】:2009-04-02 18:20:52
【问题描述】:
我正在构建一个将使用大量声音文件和图像文件的 ASP.Net C# Web 应用程序。考虑到性能,最好将 SQL 中的所有文件存储为图像数据类型并从数据库中检索,或者将硬文件存储/存档在服务器上并将路径存储在 sql 中?除了明显的存储空间和可管理性之外,我对利弊感到好奇。
【问题讨论】:
标签: asp.net sql optimization file
我正在构建一个将使用大量声音文件和图像文件的 ASP.Net C# Web 应用程序。考虑到性能,最好将 SQL 中的所有文件存储为图像数据类型并从数据库中检索,或者将硬文件存储/存档在服务器上并将路径存储在 sql 中?除了明显的存储空间和可管理性之外,我对利弊感到好奇。
【问题讨论】:
标签: asp.net sql optimization file
我当前的客户目前正在寻找相同的选项。有一些权衡需要考虑:
存储为 IMAGE 数据类型:
在数据库中存储为带有路径的文件:
本来我以为客户端缓存图片也会有问题。例如,当 .NET 从数据库中获取图像时,客户端浏览器无法缓存它 - 每次它看起来都像是一张新图像。然后我了解到,除非您为用户提供文件级访问权限(安全禁止),否则使用直接文件访问会遇到同样的问题。
【讨论】:
从性能的角度来看,最好将声音/图像存储为文件并仅保留对数据库中位置的引用。这将使您不必将数据从数据库传输到 Web 服务器,并在引用时通过处理程序重构“文件”。当然,缓存可以对此有所帮助,但您仍然会为每次缓存未命中付出代价。就我的钱而言,这个解决方案在需要开发的代码方面也不那么复杂,尽管您确实遇到了冲突问题,并且如果您启用上传,则需要进行一些额外的安全设置(可能)。
【讨论】: