我需要显示给定类别的结果数量,并隐藏任何没有结果的类别。
示例:This Yahoo!Jobs page显示城市,工作类别,体验等类别中的结果数量。
我在C#/ Asp.Net工作,担心我们的服务器会在没有一些严重的缓存和SQL优化的情况下窒息。
您将如何继续创建这样的解决方案?
答案 0 :(得分:1)
Relational databases are not suited for that kind of stuff。这只是错误的工具。相反,请查看Lucene,Solr,Sphinx等。
我个人推荐Solr,这很容易上手,使用SolrNet,您可以在few lines of code中编写一个多面的ASP.NET应用。
免责声明:我是该图书馆的作者。
答案 1 :(得分:0)
我认为你必须深入了解有关你的设置的更多细节。你在使用ORM吗?数据已经在内存中吗?请求是如何进入的?你特别关注什么?你做过任何剖析以确定这确实是一个问题吗? 我不能强调最后一个。在你试图找到方法之前,确保你所害怕的是一个实际问题。
然而,尝试回答,如果你做这样的事情
_categoryRepository
.Where(category=>category.Matches(query))
.Select(category.Items.Count())
只有category.Matches(query)返回true的类别才会执行Count()。
答案 2 :(得分:0)
这些计数的典型方式是通过缓存。该模型将在插入相关表格时触发,然后使用“CurrentCount”更新计算字段。
您可以将更多级别的缓存添加到应用程序本身,这样计数只会每隔几个小时增加一次或类似。
这比每次实际计算所有行要好得多,但它确实意味着您需要预先知道要计算的数据类型,因此您可以预先计算它。