【发布时间】:2011-06-06 19:29:24
【问题描述】:
我们有一个在线商店,拥有大约 8000 种产品。现在是时候提高产品列表/过滤的性能了。目前,我们将先前搜索/列表的结果临时存储在数据库中。该解决方案的性能已经足够好,但是如果我们添加新的搜索选项/过滤器等,扩展它会很痛苦。在这种情况下提高性能的最佳方法是什么?我在这个话题上没有找到太多东西。目前我想到了两种解决方案。
在内存中缓存所有产品。但是如果超过 100 个用户同时访问内存中的对象,性能会如何。
使用 lucene 等专业搜索引擎。
【问题讨论】:
-
缓存应该是最快的方法。但请记住,您不应该更改(添加、删除)产品,而其他人可能会列出它们。这可能导致Collection was modified; enumeration operation might not execute-Exception。
SyncLock要修改的对象(例如 DataTable)是避免它的最简单方法。
标签: asp.net performance