我对 Neo4j 相当陌生,但我设法让它工作得相当好......或者看起来是这样。我创建了一个嵌入式数据库,当图形非常小(几百个节点)时它工作得很好,但是,当它达到大约一千个节点时,它开始出现数据库对象创建(也称为节点或边缘)的滞后问题。它从创建较小数据库大小的单个对象的大约 10 毫秒到创建数据库中具有一千个节点的单个对象的大约 100 毫秒。
这种滞后对我的项目不起作用,老实说,在这样的规模下,我认为它不应该发生。我已经完成了我的研究,但似乎找不到太多有帮助的东西。我发现提到了 Cypher 和 Java 核心 API 之间的速度差异,但两者都尝试过,但速度似乎没有更好。我还认为事务开销可能太大,但我认为事实并非如此,因为较小的数据库大小似乎不是问题。
就像我提到的,我对此很陌生,所以我假设我缺少一些东西。
这是我当前的一段上传代码供引用:
try (Transaction tx = graphDb.beginTx()) {
// Perform DB operations
Node node = graphDb.createNode(NodeTypes.WORD);
Label label = DynamicLabel.label("word");
node.addLabel(label);
node.setProperty("word", graphWordNode.getWord());
tx.success();
}
如果我错过了任何重要的细节,请告诉我。
预先感谢您的帮助!
最佳答案
为您感兴趣的属性设置适当的索引将大大加快 Neo4j 的速度,就像任何数据库一样。
关于java - Neo4J 对象创建性能不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34424010/