【问题标题】:Neo4j performance issue when saving, updating or deleting nodes using crud repositories via rest api通过 rest api 使用 crud 存储库保存、更新或删除节点时的 Neo4j 性能问题
【发布时间】:2014-03-19 19:48:20
【问题描述】:

我正在创建一个使用 spring 和 Neo4j 2.0 作为数据存储的 rest api。 与服务器的连接是:

<bean id="graphDatabaseService" class="org.springframework.data.neo4j.rest.SpringRestGraphDatabase">
         <constructor-arg value="http://localhost:7474/db/data/" />
</bean>
        
<neo4j:config graphDatabaseService="graphDatabaseService" />

查询速度很快,但插入、更新和删除非常慢。插入代码如下:

领域模型

@ NodeEntity
public class User extends Node {
    @ Indexed ( INDEXTYPE = IndexType.FULLTEXT , indexName = " user_name ") private String name ;
    @ Relatedto ( type = " knows" ) private Set <User> friends ;
    private String password;
    private String token;
    Profile private profile;
    private float affection;
    public User () {
    }
    // getters and setters
}

服务层

user=new User ();
user.setName(name);
user.setPassword(password);
user.setToken();
profile=new Profile();
profile.setEmail(email);
user.setProfile(profile);
userRepository.save(user);

日志如下:

19:38:58,026 INFO AuditLogger : 16 - == > before create org.project.service.UserService
19:38:59,781 INFO AuditLogger : 21 - == > after create org.project.service.UserService

所有类型的插入和删除都会重复这一点,尤其是对于具有多个关系的节点,尽管这些关系没有明确收费。删除有时需要几秒钟。查询速度符合预期。

使用嵌入式数据库的相同操作非常快

有什么建议吗?

提前致谢

【问题讨论】:

    标签: rest neo4j spring-data-neo4j


    【解决方案1】:

    我也做了同样的事情。 我没有为许可证付费(也许其余的 api 更慢,因为他们希望它更慢......) 事实上,使用嵌入式数据库,它非常快,因为您获得了真正的连接,并且您不通过 HTTP 协议使用它...

    因此,在这种情况下,您并不孤单,也许您可​​以直接向他们询问其余 api 性能...如果他们可以实现批处理解决方案,那就太好了...

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      • 2018-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多