我最近在我的java应用程序上启用了Hibernate EH缓存作为带有查询缓存的二级缓存。
- 该应用程序涉及批量插入(从一个中检索数据)
db,根据新架构修改它并将其保存在
目标数据库)
- 处理了一批 300 元素后,将调用以下hibernate api。
sesion。 flush (),session。 clear (),session。 commit ();
- 对于下一批,同一会话将重新用于创建新交易。
- 仅为少数实体启用二级缓存
哪些可能会保持静止。
- 重复调用的查询仅被缓存。
- 二级缓存是分布式的,因此缓存放置正在3-4个节点中复制
但是,基准测试结果显示,启用二级缓存后,迁移过程要慢得多。提交操作持续时间约为3倍。调用上面提到的hibernate会话API时,二级缓存究竟发生了什么?