1

我们有一种情况,我们觉得我们没有充分利用 NHibernate 的功能,这会降低性能。对于这个问题,实际情况简化为“带有帖子的博客”示例。

一个博客站点,每个用户都可以拥有自己的博客,其中包含任意数量的帖子。因此,有一个用以下列定义的帖子表:

id, blog_id, post_title, post_contents

大多数博客很少更新,而少数是“类似推特”并经常更新。读比写多得多。

每个博客的首页显示最新的 5 个条目。

SELECT TOP 5 * FROM blog_posts WHERE blog_id = ?

这将导致许多元素被放置在二级缓存和查询缓存中。

我们的问题是,99%+ 读取的博客的缓存查询结果被破坏了,因为很少有博客被频繁更新。

你其他人通常如何解决这个问题?最佳实践是什么?

4

1 回答 1

1

这是一个 ASP.NET 应用程序吗?对于这种类型的应用程序,我会在 NHibernate 的二级缓存之前研究 ASP.NET 的页面输出缓存功能。

于 2010-06-28T15:00:49.597 回答