- 概述
APOC扩展包中的查询任务管理提供相关过程帮助将复杂查询分解成较小的批次迭代执行,从而减少事务处理的开销、提高内存使用效率。
Cypher的LOAD CSV语句允许通过USING PERIODIC COMMIT 指定批次大小,以减小更新事务的规模、提高性能并降低对内存(主要是Java堆内存/Heap Memory)的需求。对于其他Cypher语句,例如CREATE、MERGE等更新数据库操作,可以在APOC的任务管理相关过程中执行、以达到同样的效果。
通过APOC任务管理提交的批处理任务多数在后台以异步方式运行,默认情况下线程池的大小 = 处理器内核数 x 2,可以通过以下设置修改线程池大小:
|
neo4j.conf |
|
计划任务依赖调度执行器来执行。调度执行器的线程池也有默认固定大小 = 处理器内核数 / 4 (至少为1)。可以使用以下配置属性配置池大小:
|
neo4j.conf |
|
APOC提供以下任务管理过程,它们均包含在apoc.periodic.*子库中。
| 过程名 |
接口 |
功能 |
| apoc.periodic.commit |
CALL apoc.periodic.commit( |
从给定节点出发寻找扩展路径,支持基本配置。 |

本文探讨了如何使用APOC扩展包中的任务管理功能来优化Neo4j图数据库的复杂查询,通过分解成小批次执行,减少事务开销,提高内存效率。介绍了LOAD CSV的USING PERIODIC COMMIT以及如何利用APOC的异步批处理任务,调整线程池大小,并列举了相关配置属性。后续章节将介绍循环执行commit的策略。
最低0.47元/天 解锁文章
1348

被折叠的 条评论
为什么被折叠?



