数据库中的ASP.NET页面内容与文件性能?

时间:2010-09-29 07:29:29

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

我正在创建一个网站,其内容是动态的,并且其中包含图片。 如果我在DB中保存内容/图像,我的数据库(MSSQL)会占用多少/多少性能?

我只是想了解我可能遇到的问题。 我感谢任何回应。

谢谢!

3 个答案:

答案 0 :(得分:1)

如果您将内容(例如图像)保留在数据库之外,则可以让IIS直接提供此内容而无需调用ASP.NET(因此,无需数据库访问)。

如果你有很大的负载,你甚至可以将静态内容放在不同的服务器上(就像在StackOverflow上这样)。

因此,如果您需要以任何方式进行扩展,请将静态内容保留在ASP.NET和数据库之外。

答案 1 :(得分:1)

在我受雇的公司,我们使用的是定制的CMS 它动态呈现页面的内容和控件。内容存储在所有页面的表中(每个页面都有一个主要内容),其他表存储有关UserControls的信息,其路径以及应通过反射设置哪些属性的信息。
性能很好,即使是10个动态创建的控件。我们最大的客户页面每天大约有7万次点击,并且没有性能问题。该页面渲染速度非常快。

将图像存储在数据库中也可以正常工作 请记住,您需要为您的图像使用服务器端缓存(例如,通过通用处理程序* .ashx获取它们并在那里使用chaching)并希望您的imageurl在客户端缓存中得到识别。
如果您想确定,请直接在专用图像应用程序上显示图像。 (例如www.foobar.com是您的URL,然后您可以创建images.foobar.com并将所有图像存储在那里)

如果肯定会建议在那里存储经常使用的图像,例如布局图像或用户图片(如果您使用的是论坛,或者某种类型的Web应用程序一直使用多张图片)。但是在数据库中存储不经常使用的图片(用户相关的上传等等)没有任何问题。

答案 2 :(得分:0)

如果将图像存储在数据库中,则数据库大小会增加,这将导致数据库查询速度变慢。更好地存储在其他媒体上并指导您的数据库为您完成这些工作。