繁体   English   中英

默认情况下是否启用Java Hibernate二级缓存?

[英]Is Java Hibernate second level cache enabled by default?

默认情况下是否启用了休眠二级缓存?

我没有在org.hibernate.cfg.Configuration中为其配置任何内容,所以这意味着它未被使用。

如果我确实想使用它,可能会以提高内存使用为代价来提高性能,或者仅使用磁盘空间。 使用数据库的主要原因之一是使我的应用程序可以扩展并且不需要越来越多的内存。

默认情况下是否启用了休眠二级缓存?

不是。 第二级缓存是一个单独的缓存库,您需要将其添加为依赖项并对其进行配置,例如EHCache,hazelcast,cache2k,...

如果我确实想使用它,可能会以提高内存使用为代价来提高性能,或者仅使用磁盘空间。

为了减少外部请求而以更多的内存使用量进行交换是缓存的本质。 根据您的应用,这可能会有不同的效果。 如果您的应用程序对某些行的请求不比其他行更频繁,并且您有很多数据,则缓存可能会适得其反。 但是,这种情况很少见。

您可以限制高速缓存使用的内存量,因此,一旦已满,使用的内存将相当恒定。

使用数据库的主要原因之一是使我的应用程序可以扩展并且不需要越来越多的内存。

“规模”意味着不同的事物。 这可能意味着您的应用程序需要处理越来越多的数据,或者可能意味着您的应用程序需要处理越来越多的用户。 或两者。 缓存可以帮助您处理更多的用户并以较低的延迟处理请求,从而改善用户体验。

对于较小的缓存,可能会发生内存消耗降低的情况。 由于从数据库请求数据的活动较少,因此VM中的GC活动将较少,并且需要较少的数据库连接和其他资源。

我的建议:

根据我的经验,即使是很小的缓存(比如说1000个条目)也会产生很大的影响。 这是因为99%的应用程序都有一些经常需要的数据热点。 在不了解您的应用的情况下,不可能在理论上回答您的问题。 最好的方法是尝试一下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM