我正在构建一个ASP.Net C#Web应用程序,该应用程序将使用大量声音文件和图像文件。考虑到性能,最好将所有文件存储在SQL中作为图像数据类型,并从数据库中检索或存储/存档服务器上的硬文件并将路径存储在sql中?我很好奇它的优点和缺点 - 除了显而易见的存储空间和可管理性。
答案 0 :(得分:1)
我当前的客户目前正在查看相同的选项。需要考虑一些权衡因素:
存储为IMAGE数据类型:
存储为DB中包含路径的文件:
最初我认为客户端缓存图像也会出现问题。例如,当.NET从数据库中获取图像时,客户端浏览器无法对其进行缓存 - 每次都看起来像是一个新图像。然后我了解到,除非您为用户提供文件级访问(安全禁止),否则使用直接文件访问会遇到同样的问题。
答案 1 :(得分:0)
从性能角度来看,最好将声音/图像存储为文件,并保留对数据库中位置的引用。这将使您不必将数据从数据库传输到Web服务器,并在引用时通过处理程序重新构建“文件”。当然,缓存可以帮助你,但你仍然会在每次缓存未命中时支付罚金。对于我的钱而言,这个解决方案在需要开发的代码方面稍微不那么复杂,尽管你确实存在冲突问题以及一些额外的安全设置(可能),如果你要启用上传的话。