0

我需要显示给定类别的结果数量,并隐藏任何没有结果的类别。

示例:此 Yahoo!Jobs 页面显示城市、工作类别、经验等类别的结果数量。

我在 C#/Asp.Net 中工作,担心我们的服务器会在没有一些严重的缓存和 sql 优化的情况下阻塞。

您将如何继续创建这样的解决方案?

4

3 回答 3

1

关系数据库不适合那种东西。这只是工作的错误工具。相反,看看LuceneSolrSphinx等。

我个人推荐Solr,它很容易上手,并且使用SolrNet ,您可以用几行代码编写一个多面的 ASP.NET 应用程序。

免责声明:我是该库的作者。

于 2009-09-07T23:49:26.203 回答
0

我认为您将不得不深入了解有关您的设置的更多细节。你在使用 ORM 吗?数据是否已经在内存中?请求是如何进来的?你特别关心什么?您是否进行了任何分析以确定这确实是一个问题? 我不能强调最后一个。 在尝试找到解决方法之前,请确保您害怕的是一个实际问题。

但是,要尝试回答,如果您执行此类操作

_categoryRepository
  .Where(category=>category.Matches(query))
  .Select(category.Items.Count())

Count() 只会对 category.Matches(query) 返回 true 的类别执行。

于 2009-09-07T23:06:21.253 回答
0

完成这些计数的典型方式是通过缓存。该模型将在插入相关表时触发,然后使用“CurrentCount”更新计算字段。

您可以在应用程序本身中添加更多级别的缓存,这样计数只会每隔几个小时或类似的时间增加一次。

它比每次实际计算所有行要好得多,但这确实意味着您需要提前知道要计算的数据类型,以便您可以预先计算它。

于 2009-09-08T00:35:32.797 回答