Tag: database performance

保存CRUDRepository的方法很慢?

我想在我的neo4j数据库中存储一些数据。 我使用spring-data-neo4j。 我的代码如下: for (int i = 0; i < newRisks.size(); i++) { myRepository.save(newRisks.get(i)); System.out.println("saved " + newRisks.get(i).name); } 我的newRisks-array包含大约60000个对象和60000个边。 每个节点和边都有一个属性。 这个循环的持续时间大约是15-20分钟,这是正常的吗? 我使用Java VisualVM来搜索一些瓶颈,但我的平均CPU使用率为10 – 25%(4个核心),而我的堆不到一半。 有什么选择来推动这项行动吗? 编辑:附加是,在第一次调用myRepository.save(newRisks.get(i)); 在第一个输出到来之前几分钟,jvm下降了fpr 第二次编辑: 类风险: @NodeEntity public class Risk { //… @Indexed public String name; @RelatedTo(type = “CHILD”, direction = Direction.OUTGOING) Set risk = new HashSet(); public void addChild(Risk […]

为什么spring / hibernate只读数据库事务比read-write运行得慢?

我一直在研究只读与读写数据库事务的性能。 MySQL服务器是远程的,因此我很容易看到不同事务类型之间的差异。 这是连接池,我知道它基于比较第一个和第二个JDBC调用。 当我将Spring AOP配置为在我的DAO调用上使用只读事务时,与读写相比,调用速度慢 30-40%: 要么 // slower @Transaction(readOnly = true) 与: 要么 // faster @Transaction 看看tcpdump,似乎只读事务在与MySQL交谈时做得更多。 这是只读转储与读写 。 任何人都可以解释为什么只读通话需要更长的时间。 这是预期的吗? 除了改进网络之外,还有什么我做错了或我可以做些什么来提高速度? 刚刚发现了这篇很棒的post并提供了一些很好的性能建议 。 还有其他意见吗? 非常感谢。