Neo4j 第五篇:批量更新数据
转载:https://www.cnblogs.com/ljhdo/p/5554560.html
参考:
https://neo4j.com/docs/cypher-manual/current/clauses/unwind/
https://www.tugberkugurlu.com/archive/getting-started-with-neo4j-in--net-with-neo4jclient-library
https://neo4j.com/docs/cypher-manual/current/clauses/foreach/
https://blog.csdn.net/hwz2311245/article/details/60963383
相比图形数据的查询,Neo4j 更新图形数据的速度较慢,通常情况下,Neo4j 更新数据的工作流程是:每次数据更新都会执行一次数据库连接,打开一个事务,在事务中更新数据。当数据量非常大时,这种做法非常耗时,大多数时间耗费在连接数据库和打开事务上,高效的做法是利用Neo4j提供的参数(Parameter)机制和UNWIND子句:在一次数据更新中,进行一次连接,打开一次事务,批量更新数据;参数用于提供列表格式的数据,UNWIND 子句是把列表数据展开成一行一行的数据,每行数据都会执行结构相同的 Cypher 语句。再批量更新图形数据之前,用户必须构造结构固定的、参数化的 Cypher 语句。当 Cypher 语句的结构相同时,Neo4j 数据库直接从缓存中复用已生成的执行计划,而不需要重新生成,这也能够提高查询性能。
除了官方的 Neo4j Driver 之外,本文分享使用 Neo4jClient 对图形数据批量更新,Neo4jClient 提供的功能更强大,并支持参数和批量更新操作。