Neo4j 匹配/检索查询花费太多时间 25 秒

Neo4j Match / Retrieving Query taking too much time 25 sec

我的系统是 8 核和 16 GB RAM。但仍然遍历:用户节点花费太多时间大约 25 秒。

我在 neo4j 中设置了 2 个属性-wrapper.conf :

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 关系,您系统中的用户将形成一个链表,以及时的顺序保存用户。

这个链表的遍历速度快,容易

我运气不错,将初始内存和最大内存都设置为相同的值(这样 jvm 就不必调整大小)并且还设置了垃圾回收。 在您的 conf 文件中试一试这些值:

-Xmx4g #max
-Xms4g #init
-XX:+UseConcMarkSweepG #garbage collector