查询缓存如何工作以及它如何提高nHibernate的性能?
答案 0 :(得分:5)
当缓存查询时,NHibernate将缓存查询产生的实体的ID。
非常重要的是,它不会缓存实体本身 - 只会缓存它们的ID。这意味着您几乎肯定希望确保这些实体也设置为在二级缓存中可缓存。否则,NHiberate将从查询缓存中获取实体的ID,但随后将被强制转到数据库以获取实际实体。这可能比首先进入数据库更加昂贵!
同样重要的是:查询根据其确切的SQL和参数值进行缓存。任何一个方面的任何差异都意味着数据库将被击中。所以你可能只想缓存那些输入变化很小的查询。
答案 1 :(得分:2)
启用缓存时,nHibernate会在执行查询时将查询结果存储在内部。当您尝试再次使用SAME参数执行查询时,它将从缓存中获取结果,而不是从数据库中获取结果,当然它会更快!但要注意其他应用程序可以在后台修改数据库!但是nHibernate可以更新缓存。
答案 2 :(得分:0)
通过使用它,nHibernate不需要访问它访问缓存中的数据存储。