通过rest api使用crud存储库保存,更新或删除节点时出现Neo4j性能问题

时间:2014-03-19 19:48:20

标签: rest neo4j spring-data-neo4j

我正在使用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

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

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

任何提示?

提前致谢

1 个答案:

答案 0 :(得分:0)

我做了同样的事情。 我没有支付许可费(也许剩下的api只是因为他们想要慢一些......) 实际上,使用嵌入式数据库它非常快,因为你得到了真正的连接而你没有通过HTTP协议使用它......

所以,在这种情况下,你并不孤单,也许你可以直接问他们关于其余的api性能......如果他们能够实现批量解决方案,那就太好了......

祝你好运!