如何在Hibernate Spring中减少DB命中数



这可能是一个非常普遍的问题。我想知道缓存(一级缓存和二级缓存)是否是在Hibernate中减少db命中次数的唯一方法。

你的问题很普遍,但是在高层次上是的缓存将解决多个数据库命中问题。你也可以使用hibernate缓存你也可以使用Spring缓存抽象对于细粒度实现。还有其他方面,这取决于你的问题陈述和解决方法。

请记住:任何缓存都会增加应用程序的内存使用,并且您需要适当地清理缓存以避免使用任何过时的信息。

减少DB查询的数量可以分为两个步骤:

  1. 消除N + 1个可能的问题源。
  2. 查找应用程序中的热点,最需要的数据,并通过各种方式缓存。

前者可以通过@Fetch(FetchMode.SUBSELECT), JPQL/HQLJOIN FETCH和JPA实体图。对于后者,您可以使用Spring缓存或特定于hibernate的缓存。

相关内容

最新更新