gpt4 book ai didi

java - 永不更改表的最佳 Spring/Hibernate 配置

转载 作者:可可西里 更新时间:2023-11-01 06:48:23 26 4
gpt4 key购买 nike

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

对于这种情况,我想知道处理这种情况的最佳性能方法是什么。我已经掌握了基础知识,只读 ehcache、查询缓存和设置为只读的事务(这对 Mysql 有什么作用吗?)。我还可以查看哪些其他内容?哪种隔离模式、传播模式最好?我应该看看其他缓存解决方案吗?或者我应该简单地取消所有这些,只将数据一次加载到一系列 HashMap 中(希望这将是最后的手段)?

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

如果有任何指点和经验,我将不胜感激!

最佳答案

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

这是一个非常常见的场景,这就是您应该做的所有事情。 您不必处理自己的内存 hashmap 缓存(像 echache 这样的二级缓存为您提供多种存储选择),二级缓存将为您做些什么。 事务较少的数据库访问不会为您提供任何性能方面的好处,所以我不会担心它并让 hibernate 处理它。

关于java - 永不更改表的最佳 Spring/Hibernate 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/913025/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com