gpt4 book ai didi

java - 批量插入的最佳 JPA ID 生成策略

转载 作者:行者123 更新时间:2023-12-02 11:38:20 25 4
gpt4 key购买 nike

我在使用 Spring Data JPA 存储库一次插入 100 000 条记录时遇到问题。当我们执行repo.save(List<Objs>)时如果我们使用序列生成器在数据库中查询下一个值,则会花费大量时间。我正在使用 Oracle,哪种 ID 生成方式最好?

最佳答案

序列生成器可能是一个不错的选择,但您必须调整其参数。

在您的特定情况下,我会开始尝试分配大小,然后尝试策略。例如:JPA/Hibernate bulk inserts slow

看一下优化器配置: https://vladmihalcea.com/hibernate-hidden-gem-the-pooled-lo-optimizer/

请注意,您的配置解析为:

  • SequenceHiLoGenerator 在 Hibernate 4 上
  • SequenceStyleGenerator(在 Hibernate 5 上)(将 hibernate.id.new_generator_mappings 设置为 true)

您无法使用身份生成器(请参阅 Hibernate disabled insert batching when using an identity identifier generator )

表生成器不是性能最好的生成器 ( https://vladmihalcea.com/why-you-should-never-use-the-table-identifier-generator-with-jpa-and-hibernate/ )

此外,请确保 nextval() 的数量是实际问题。也许更改批量大小或语句顺序会有所帮助(请参阅 https://vladmihalcea.com/how-to-batch-insert-and-update-statements-with-hibernate/ )

关于java - 批量插入的最佳 JPA ID 生成策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48764171/

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