У меня есть сценарий, как показано ниже:Neo4j повышение производительности записи
CREATE (p:Person{guid:1})
CREATE (b1:Book{guid:1})
CREATE (b2:Book{guid:2})
CREATE (b3:Book{guid:3})
MATCH (p:Person{guid:1}),(b1:Book{guid:1}) CREATE (p)-[:READ]->(b1)
MATCH (p:Person{guid:1}),(b2:Book{guid:2}) CREATE (p)-[:READ]->(b2)
MATCH (p:Person{guid:1}),(b3:Book{guid:3}) CREATE (p)-[:READ]->(b3)
В настоящее время выше Cypher запросов выполняются последовательно. Мне нужно улучшить производительность моих операций записи.
Я думаю, что создание p, b1, b2, b3 может происходить параллельно. Как только это будет сделано, соединение между p и b1, b2 и b3 может происходить параллельно. Кроме того, я думаю, что над запросами может работать только одна партия вместо отдельных операций записи.
Я использую neo4jphp и узла-Neo4j.
думаю есть Transactional Cypher HTTP endpoint и Batch operations. Улучшают ли они производительность записи? Что из этого лучше для вышеуказанного случая?
Похоже, neo4jphp поддерживает пакетные операции и операции cypher. Но не уверен, можно ли выполнить транзакции пакет/cypher в node-neo4j.
Большое вам спасибо. У меня есть еще одно сомнение: мои запросы на запись описаны здесь: https://onedrive.live.com/redir?resid=879CBF0D0A286E6D%21113 Как объединить эти запросы и сделать одну операцию записи? –