Я использую neo4j python API и подключаюсь к локальной базе данных. У меня есть граф, содержащий 700 000 узлов. Я могу очень быстро создать узлы, используя:
with session.begin_transaction() as tx:
cypher_query = 'UNWIND $batch as row ' \
'CREATE (n:Node) ' \
'SET n += row'
tx.run(cypher_query, batch=batch)
График представляет 4M отношений, и я пытаюсь создать их следующим образом:
with session.begin_transaction() as tx:
cypher_query = 'UNWIND $batch as row ' \
'MATCH (head:Node) WHERE head.id = row.head_id ' \
'MATCH (tail:Node) WHERE tail.id = row.tail_id ' \
'CREATE (head)-[rel:RELATIONSHIP]->(tail) ' \
'SET rel += row.properties'
tx.run(cypher_query, batch=batch)
Размер пакета 10К. Создание отношений происходит очень медленно. Я подсчитал, что это займет около 30 дней. Вы знаете обходной путь? Это нормально, если так медленно?