admin

Hibernate:动态更新动态插入 - 性能效果

sql

尽管这些设置在某些情况下可以提高性能,但在其他情况下它们实际上会降低性能。

任何人都可以建议一些示例/场景提及相同的负面性能影响吗?


阅读 274

收藏
2021-06-07

共1个答案

admin

Hibernate 缓存每个实体的实际 INSERT/SELECT/UPDATE SQL 字符串,明显的好处是当您想要持久化、查找或更新实体时,它不必计算 SQL。

但是,在使用动态插入或动态更新时,Hibernate 每次都必须生成相应的 SQL 字符串,因此在 Hibernate 端存在性能成本。

换句话说,在数据库端和 Hibernate 端的开销之间存在权衡。

我的观点是动态插入和动态更新对于具有胖 blob 列的表或具有大量列的表可能很有趣。在其他情况下,我不相信动态插入或更新总是意味着性能提升(默认情况下我不使用它们)。但与往常一样,你应该衡量它。

2021-06-07