【问题标题】:Improve Asp.net Shop Listview Performance提高 Asp.net Shop Listview 性能
【发布时间】:2011-06-06 19:29:24
【问题描述】:

我们有一个在线商店,拥有大约 8000 种产品。现在是时候提高产品列表/过滤的性能了。目前,我们将先前搜索/列表的结果临时存储在数据库中。该解决方案的性能已经足够好,但是如果我们添加新的搜索选项/过滤器等,扩展它会很痛苦。在这种情况下提高性能的最佳方法是什么?我在这个话题上没有找到太多东西。目前我想到了两种解决方案。

  1. 在内存中缓存所有产品。但是如果超过 100 个用户同时访问内存中的对象,性能会如何。

  2. 使用 lucene 等专业搜索引擎。

【问题讨论】:

标签: asp.net performance


【解决方案1】:

您不必担心 asp.net 缓存中的内存问题。如果您的应用程序内存不足,asp.net 缓存会从缓存内存中释放一些内容。 我会采用该解决方案,因为我认为 Lucene 不会有很大帮助。

【讨论】:

  • 谢谢。但我有点担心并发/性能。假设我在内存中有一个 List 有 8000 个条目。现在许多用户访问该站点,我进行 linq 调用,例如 products.Where(p=>name.contains("bla")).OrderBy("bla").Skip(100).Take(50)。
  • 如果它是指向对象的链接,则不会有任何并发​​问题。
【解决方案2】:

就缓存而言,我认为您不会基于每个用户进行缓存。您可以缓存产品本身以防止往返数据库。至于存储用户以前的搜索,这可以用 cookie 更好地完成吗?这样服务器就不必为每个用户记住这一点,您将能够检查请求中的 cookie。

【讨论】:

  • 不,我们不会基于用户进行缓存。我们存储以前搜索/列表的结果。如果您打开一个类别,我们会查看是否有商店结果(相同类别、相同排序等),这样我们就不必再次进行这些查询/连接。
猜你喜欢
  • 2011-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-26
  • 1970-01-01
  • 1970-01-01
  • 2021-02-22
相关资源
最近更新 更多