随着插入更多数据,通过Neo4j rest绑定批rest API将数据插入Neo4j的速度变慢

随着插入更多数据,通过Neo4j rest绑定批rest API将数据插入Neo4j的速度变慢,neo4j,cypher,Neo4j,Cypher,我目前正在尝试将大量数据插入neo4j。通过使用neo4jjavarest绑定库,我通过500个cypher查询进行批插入,目前我的图中最多存储了200k个节点和1.4m个关系 根据我当前的数据,我在插入过程中已经遇到请求超时,我想知道是否有任何配置可以加快批处理请求的插入 或者对我当前使用的查询进行一些改进 这里还有一个正在使用的示例查询 MERGE (firstNode {id:'ABC'}) ON CREATE SET firstNode.type="RINGCODE", firstNod

我目前正在尝试将大量数据插入neo4j。通过使用neo4jjavarest绑定库,我通过500个cypher查询进行批插入,目前我的图中最多存储了200k个节点和1.4m个关系

根据我当前的数据,我在插入过程中已经遇到请求超时,我想知道是否有任何配置可以加快批处理请求的插入

或者对我当前使用的查询进行一些改进 这里还有一个正在使用的示例查询

MERGE (firstNode {id:'ABC'})
ON CREATE SET firstNode.type="RINGCODE", firstNode.created = 100, firstNode:rbt
ON MATCH SET firstNode.type="RINGCODE", firstNode:rbt 
MERGE (secondNode{id:'RBT-TC664'}) 
WITH firstNode, secondNode OPTIONAL MATCH firstNode - [existing:`sku`] - () 
DELETE existing 
CREATE UNIQUE p = (firstNode)-[r:`sku`]-(secondNode) RETURN p;
  • 使用标签
  • 为label+属性(id)创建索引或唯一约束
  • 用标签表示类型
  • 否则,Neo4j必须扫描所有节点,以确定要合并的节点是否已在数据库中

    如果不需要唯一性,也可以使用create,它不检查,只创建,不会减慢速度

    rbt代表什么

    create constraint on (n:Rbt) assert n.id is unique;
    
    MERGE (firstNode:Rbt:RingCode {id:'ABC'})
    ON CREATE SET firstNode.created = 100 
    MERGE (secondNode:Rbt {id:'RBT-TC664'})
    WITH firstNode, secondNode
    OPTIONAL MATCH firstNode -[existing:`sku`]- () 
    DELETE existing 
    MERGE p = (firstNode)-[r:`sku`]-(secondNode) 
    RETURN p;
    

    谢谢Michael,我将尝试一下,顺便问一下,我是否需要在每次查询时使用createconstraint,还是只运行一次?另外,Rbt代表回铃音。