查询缓存如何提高nHibernate中的性能?

查询缓存如何提高nHibernate中的性能?,nhibernate,query-cache,Nhibernate,Query Cache,查询缓存是如何工作的,它如何提高nHibernate中的性能?使用它nHibernate不需要访问数据存储,它可以访问缓存中的内容。使用它nHibernate不需要访问数据存储,它可以访问缓存中的内容。启用缓存时,nHibernate将存储查询当您执行查询时,结果在内部某处。当您再次尝试使用相同的参数执行查询时,它将从缓存中获得结果,而不是从数据库中获得结果,当然速度要快得多!但请注意,其他应用程序可以在后台修改数据库!但是nHibernate可以更新缓存。当您启用缓存时,当您执行查询时,nHi

查询缓存是如何工作的,它如何提高nHibernate中的性能?

使用它nHibernate不需要访问数据存储,它可以访问缓存中的内容。

使用它nHibernate不需要访问数据存储,它可以访问缓存中的内容。

启用缓存时,nHibernate将存储查询当您执行查询时,结果在内部某处。当您再次尝试使用相同的参数执行查询时,它将从缓存中获得结果,而不是从数据库中获得结果,当然速度要快得多!但请注意,其他应用程序可以在后台修改数据库!但是nHibernate可以更新缓存。

当您启用缓存时,当您执行查询时,nHibernate会将查询结果存储在缓存中的某个位置。当您再次尝试使用相同的参数执行查询时,它将从缓存中获得结果,而不是从数据库中获得结果,当然速度要快得多!但请注意,其他应用程序可以在后台修改数据库!但是nHibernate可以更新缓存。

缓存查询时,nHibernate将缓存查询产生的实体ID

非常重要的是,它不会缓存实体本身,只缓存它们的ID。这意味着您几乎肯定希望确保这些实体也被设置为可在二级缓存中缓存。否则,NHiberate将从查询缓存中获取实体的ID,但随后将被迫转到数据库以获取实际实体。这可能比一开始就访问数据库的成本更高


同样重要的是:查询是根据其确切的SQL和参数值进行缓存的。这两个方面的任何差异都将意味着数据库将受到攻击。因此,您可能只希望缓存那些输入差异很小的查询。

缓存查询时,NHibernate将缓存查询产生的实体ID

非常重要的是,它不会缓存实体本身,只缓存它们的ID。这意味着您几乎肯定希望确保这些实体也被设置为可在二级缓存中缓存。否则,NHiberate将从查询缓存中获取实体的ID,但随后将被迫转到数据库以获取实际实体。这可能比一开始就访问数据库的成本更高


同样重要的是:查询是根据其确切的SQL和参数值进行缓存的。这两个方面的任何差异都将意味着数据库将受到攻击。因此,您可能只想缓存那些输入变化不大的查询。

这可能是实体缓存。这可能是实体缓存。