是否有人对Neo4J Java Native API,Traversal API和Cypher进行了性能评估。 从性能角度来看,上述三个选项中的哪一个会产生更好的结果? 此外,对于写操作,我应该使用Native java API还是cypher。是否有可能在本机API中批量数据库操作,以便它只打一次DB而不是每个节点/关系创建。
答案 0 :(得分:1)
您会对此article感兴趣。但他们测试的主要内容是
- Core API能够回答约2000朋友的朋友查询 (我必须承认一个非常稀疏的网络)。
- Traverser框架是 比Core API慢25%
- 最糟糕的是比较慢的密码 至少一个数量级只能回答大约100个FOAF 每秒查询次数。我很震惊所以我和安德烈斯泰勒谈过 neo4j主要为cypher工作。他问我哪个neo4j 我使用的版本,我说它是1.7。他告诉我应该退房 1.9。因为Cypher变得更加高效。所以我在neo4j 1.8和neo4j 1.9上运行基准测试,不幸的是Cypher变慢了 更新的neo4j发布。
但是,除非在高性能情况下,否则我建议使用Cypher。 (基本上使用起来越难,它就越快。你可以平衡开发工作与性能。)此外,这些数据已经过时了,Neo4j的每次重大更新都带有Cypher规划师可以采用的新技巧。用来更有效地查询。所以Cypher的性能将基于数据库内容和Neo4j版本(无论好坏)
此外,Traversal API构建于Core API之上,而Cypher构建于Traversal API之上;所以你在Cypher可以做的任何事情都可以用其他2来完成。