我的系统是8核和16 GBRAM。但仍在遍历:用户节点花费太多时间,大约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来减少执行时间?
Neo4j中的索引用于查找节点,而不是用于排序。如果您想对4M节点的排序列表进行分页,则需要一些时间。
解决这个问题的方法是通过适当的数据建模。当添加一个新的User
时,考虑在当前关系之前创建一个:PREV_USER
关系,系统中的用户将形成一个链表,及时排列用户。
这个链表快速且易于遍历。
我很幸运地将init内存和max内存设置为相同的值(因此jvm不必进行任何大小调整)并设置垃圾回收机制。
-Xmx4g #max
-Xms4g #init
-XX:+UseConcMarkSweepG #garbage collector