Neo4j社交图在大响应上的性能

Neo4j社交图在大响应上的性能,neo4j,Neo4j,我需要一个关于改进社交图性能的建议。目标查询可以很好地处理少量结果。但它可能返回超过1000行的大型结果。能否在cypher查询的大响应上调整性能 使用密码查询: START givenFriend=node:Nodes('id:709387498'), item=node:ItemCat1Cat2('category:a.b') MATCH p = givenFriend-[:FRIEND]-friend1-[:FRIEND]-friend2-[:DATA]->item RETURN p

我需要一个关于改进社交图性能的建议。目标查询可以很好地处理少量结果。但它可能返回超过1000行的大型结果。能否在cypher查询的大响应上调整性能

使用密码查询:

START givenFriend=node:Nodes('id:709387498'),
item=node:ItemCat1Cat2('category:a.b')
MATCH p = givenFriend-[:FRIEND]-friend1-[:FRIEND]-friend2-[:DATA]->item
RETURN p, item
Neo4j核心1.9.5

该图包含已连接的朋友:

friend1Node-[:FRIEND]->friend1Node
朋友可以有多个数据项,这些数据项表示为具有属性的节点:

friendNode-[:DATA]->DataNode
数据节点大约有8个属性。其中有一个类别属性。数据项节点按类别编制索引

好友节点编号:650772

朋友关系号码:842755

数据项节点编号:5640

需要改进的查询应该通过2个朋友选择从给定节点id到具有定义类别的数据项的所有路径。路径具有以下视图:

givenFriend-friend1-friend2-dataItem 
遍历可以提高性能吗?

迁移到2.0.0能改进数据库模型和查询性能吗?

**UPD

  • 我使用php库 但我对其他变体持开放态度。现在我在看新教(Golang)。我还考虑使用neo4j扩展来执行查询。目标查询也通过neo4j仪表板进行测试。因此客户端层不存在
  • php库的新版本使用X-Stream。我的不是。但是,由于查询是在没有客户机的情况下测试的,因此可以忽略此因素
  • 这个问题很好。我已经对查询进行了调优——它返回的不是节点而是我需要的属性,并且性能有所提高
  • 如果我对SLA的理解正确-此类请求的并发度应为100,每个请求允许的响应时间为2秒。通过仪表板的查询响应时间:
  • 限值1=195ms

    极限100=564ms

    极限1000=1549ms

    极限3000=3208ms

    跳过7000极限1=2051ms

    响应最多可包含13K条记录

  • 你用什么客户机
  • 您是否使用流媒体,即X-Stream:true标头
  • 只返回您需要的数据,所以不要返回路径或节点,而只返回那些您真正需要执行用例的属性
  • 2.0.1将提高事务端点的性能

  • 您的SLA和当前响应时间是多少?回答有多大?

    答案被添加到**日常建议中?我是否有机会在不进行数据层重构的情况下提高性能?