我的绩效问题解决方案

时间:2011-12-21 09:21:35

标签: sql-server performance caching dynamic-websites

我正在运行一个分类广告网站,其中包含广告和评论。随着流量增长到相当大的数量,系统中的广告数量已超过150万,其中近250K是有效广告。

现在的问题是系统在广告类别和每种广告可以根据类别或子类别拥有的属性方面设计得非常动态,因此要显示广告我必须加入近4到5个表。

为了解决这个问题,我创建了一个平面表(概念上我称之为发布表),并每隔3到4分钟用SQL作业填充该表。现在,对于网络请求,我会查询该表格以显示广告列表或详细信息。

我还为广告列表和每个广告详细信息的每个唯一网址组合实施了大约1分钟的数据缓存。

我对广告的评论做同样的事情(即缓存评论,并且评论是分层的,我也使用了平面表发布模型,再次填充了SQL作业)

我的问题如下:

  1. 使用backgroung sql作业的发布模型是一种好的设计方法吗?
  2. 您会采取什么方法或人们采取这样的方案?
  3. 像facebook这样的网站如何实时显示数百万用户的评论,确保他们不会丢失任何评论数据,只需将其保留在缓存中并进行批量更新?

1 个答案:

答案 0 :(得分:1)

从结尾开始:

  

3.像facebook这样的网站如何实时显示数百万用户的评论,确保   他们不会丢失任何评论数据只保留在缓存中并进行批量更新?

两件事:

  • 比你聪明的编程。他们可以在几个月内解决这个问题。
  • 无知。他们真的不太关心缓存是否有点过时。没人会真正意识到。
  • 硬件;)比您更强大的服务器。

那就是说,你的apoproach听起来很明智。