java - Neo4J 对象创建性能不佳

标签 java neo4j

我对 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/

相关文章:

java - IntelliJ 中缺少架构定义

java - Spring MVC没有找到默认构造函数?

java - 为什么我可以在实例不可见的情况下调用子类实例的私有(private)方法?

java - javax.persistence.Table.indexes()[Ljavax/persistence/Index 中的 NoSuchMethodError

java - 查找连接到同一 Wifi 网络的所有设备的 MAC 地址

java - 最大化(排序)Neo4j 数据库中的版本号元素

Neo4j:如何使用带有特殊字符的整数或字符串作为节点的标识符/名称

database - Neo4j read_only 不起作用

docker - 无法在 GitLab CI docker-in-docker 中针对 neo4j 数据库运行测试

regex - Neo4j Cypher 查询 - 使用正则表达式查询属性数组