Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 使用neo4j@QueryResult的性能问题_Performance_Neo4j_Spring Data Neo4j - Fatal编程技术网

Performance 使用neo4j@QueryResult的性能问题

Performance 使用neo4j@QueryResult的性能问题,performance,neo4j,spring-data-neo4j,Performance,Neo4j,Spring Data Neo4j,我用的是neo4j和spring数据。 当我使用返回多个字段的查询时,我通常会尝试返回一个接口(@QueryResult-annotated),因此以后不需要转换结果。 由于某些原因,随着结果数量的增加,我的表现非常糟糕。 有人有解决办法吗? 我正在使用neo4j 2.0.1到neo4j 3.0.0的rest、spring数据 数据集非常小,不到100个节点,结果集最多有10条记录。Spring-Data-Neo4j-Rest速度非常慢,因为它是为嵌入式数据库构建的 下面是一些修复程

我用的是neo4j和spring数据。 当我使用返回多个字段的查询时,我通常会尝试返回一个接口(@QueryResult-annotated),因此以后不需要转换结果。

由于某些原因,随着结果数量的增加,我的表现非常糟糕。
有人有解决办法吗?

我正在使用neo4j 2.0.1到neo4j 3.0.0的rest、spring数据

数据集非常小,不到100个节点,结果集最多有10条记录。

Spring-Data-Neo4j-Rest速度非常慢,因为它是为嵌入式数据库构建的

下面是一些修复程序,它们可以帮助提高应用程序的性能,但仍然可以利用SDN的强大功能为您反序列化对象

  • 编写自己的cypher查询,并使用@QueryResult more检索连接的节点。不要使用@Fetch注释。当可以在单个查询中完成时,SDN将进行额外的REST调用,以尝试序列化整个对象图 比如说,

    public class Person {
    
        @RelatedTo (type = "MARRIED", direction = BOTH)
        private Person partner;
    
    }
    
    @QueryResult
    public class PersonResult {
    
         @ResultColumn("person")
         private Person person;
    
         @ResultColumn("partner")
         private Person partner;
    
    }
    
    在存储库中,然后获取结果

    public interface PersonRepository extends GraphRepository <Person> {
           @Query ("MATCH person-[m:MARRIED]-partner RETURN person, partner)
           List<PersonResult> findAllMarried ();
    }
    
    公共接口PersonRepository扩展了GraphRespository{
    @查询(“匹配人-[m:已婚]-合作伙伴返回人,合作伙伴)
    列表findAllMarried();
    }
    
  • 再次删除那些致命的@FETCH注释
  • 您的对象是以这种方式批量序列化的。当SDN团队找到更好的方法来解决此问题时,这是非常有效的