我的系统是8核和16 GB RAM。但仍在遍历:用户节点需要大约25秒的时间。
我在neo4j-wrapper.conf中设置了2个属性:
wrapper.java.initmemory = 6144
wrapper.java.maxmemory = 12288
MATCH (u:User) RETURN id(u) as id, u.username, u.email, (..15 More fields..), u.created_at as created_at ORDER BY created_at desc SKIP 0 LIMIT 10
如何减少Neo4j服务器的响应时间?可以设置什么neo4j.properties来减少执行时间?
答案 0 :(得分:3)
Neo4j中的索引用于查找节点而不用于排序。如果要对4M节点的已排序列表进行分页,则需要一些时间。
解决这个问题的方法是通过适当的数据建模。添加新User
时,如果考虑与当前创建的:PREV_USER
关系之间存在{{1}}关系,则系统中的用户将形成一个链接列表,以便及时按住用户。
此链接列表快速且易于遍历。
答案 1 :(得分:2)
通过将init内存和max memory设置为相同的值(因此jvm不必进行任何大小调整)以及设置垃圾收集,我已经有了一些运气。 在conf文件中给出这些值:
-Xmx4g #max
-Xms4g #init
-XX:+UseConcMarkSweepG #garbage collector