最好的Spring/Hibernate配置,永不改变表格

Il-*_*ima 6 java mysql performance spring hibernate

我目前正在使用Spring + Hibernate + MySQL来处理我正在进行的项目.我意识到有一些表永远不会改变.它们是静态的,在这些表上不会发生插入或更新,因此可以认为是不可变的.对这些表的所有访问都是通过实体集合和hql查询的延迟加载(可以是急切的).

我想知道这种情况下处理这种情况的最佳方法是什么.我有基础知识,只读ehcache,查询缓存和设置为只读的事务(这对Mysql做了什么呢?).我还能看到其他什么?哪种ISOLATION模式,PROPAGATION模式最好?我应该看看其他缓存解决方案吗?或者我应该简单地取消所有这些,只需将数据加载到一系列的哈希图中(这有望成为最后的手段)?

另一个可能的(牵强附会的?)解决方案是拥有一些内存/无事务数据库并让hibernate连接到它.这样的数据库引擎存在吗?

我很感激任何指针,经验你们有过!

Sur*_*rya 6

为所有实体设置第二级 cahce(检查 hibernate 文档以了解缓存的各种配置/映射详细信息),配置查询缓存并将它们在映射中标记为不可变/使用只读会话,这将使 hibernate 不检查这些实体的修改进行“事务性后写”和会话刷新时的实体。

这是一种非常常见的情况,这就是您应该做的全部事情。您不必处理在内存中推出自己的哈希图缓存(像 echache 这样的二级缓存为您提供了多种存储替代方案),二级缓存将为您做的事情。无事务数据库访问不会为您提供任何性能方面的信息,因此我不会担心它并让 hibernate 处理它。