gpt4 book ai didi

mysql - JPA 映射的性能

转载 作者:行者123 更新时间:2023-11-29 07:00:34 25 4
gpt4 key购买 nike

现在我正在使用 JPA。我想知道的是:

我有很多相互映射的表。当我查看日志时,我发现经过简单查询后,正在从数据库中提取大量信息。如果一次有很多查询会怎样?或者它会正常工作吗?如何提高性能?

最佳答案

ORM 框架会带来开销。因为它的级别相当高,所以有时需要生成大量 native SQL 查询才能在一两行 JPQL 或纯 EntityManager 操作中获得您想要的结果。

但是,JPA 使用两个缓存 - L1 和 L2。一个在实体级别上运行,另一个在 PersistenceUnits 级别上运行。因此,您可能会看到生成了很多 SQL 查询,但一段时间后,您应该会缓存一些数据。

如果你对性能不满意,你可以尝试使用延迟加载集合或自己获取所需的数据(你可能对这件事感兴趣 Bozho's post)。

最后,如果您发现缓存没有提高您的性能并且手工制作的 JPQL 查询没有正确完成工作 - 您可以随时恢复为普通 SQL 查询。请注意,这些查询会绕过 JPA 缓存,并且可能需要您在执行 native 查询(或在事件事务开始时调用它)之前进行一些刷新。

尽管您会选择优化路线 - 首先在您的环境中测试,然后自己回答是否需要此优化。做一些重度测试,性能测试等等。

“过早的优化是万恶之源。” D. Knuth

关于mysql - JPA 映射的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10379683/

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