我需要通过REST API的Batch端点将大量节点与它们之间的关系插入Neo4j,大约5k记录/秒(仍在增加).
这将是24x7的连续插入.每条记录可能只需要创建一个节点,但其他记录可能需要创建两个节点和一个关系.
我可以通过更改程序或修改Neo4j的设置来提高插入的性能吗?
我到目前为止的进展:
1.我一直在测试Neo4j,但是我无法获得所需的性能
测试服务器盒:24核+ 32GB RAM
Neo4j 2.0.0-M06作为独立服务安装.
在同一台服务器上运行我的Java应用程序.(Neo4j和Java应用程序将来需要在自己的服务器上运行,因此无法使用嵌入式模式)
REST API端点:/ db/data/batch(target:/ cypher)
使用模式索引,约束,MERGE,CREATE UNIQUE.
2.我的架构:
neo4j-sh (0)$ schema
==> Indexes
==> ON :REPLY(created_at) ONLINE
==> ON :REPLY(ids) ONLINE (for uniqueness constraint)
==> ON :REPOST(created_at) ONLINE
==> ON :REPOST(ids) ONLINE (for uniqueness constraint)
==> ON :Post(userId) ONLINE
==> ON :Post(postId) ONLINE (for uniqueness constraint)
==>
==> Constraints
==> ON (post:Post) ASSERT post.postId IS UNIQUE
==> ON (repost:REPOST) ASSERT repost.ids IS UNIQUE
==> ON (reply:REPLY) ASSERT reply.ids IS …Run Code Online (Sandbox Code Playgroud)