Neo4j Cypher查询优化可提高性能

des4xlb0  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(189)

我现在无法在大数据集上测试这一点,但我想知道Neo4j中的哪种Cypher查询可以更快地工作,以便正确地设计系统:

方法1:

WHERE apoc.coll.containsAllSorted($profileDetailedCriterionIds, childD.mandatoryCriterionIds)

方法2:

(p:Profile {id: $profileId})-[:HAS_VOTE_ON]-(c:Criterion)<-[:HAS_VOTE_ON]-(childD) 
WHERE c.id IN childD.mandatoryCriterionIds 
WITH childD, COLLECT(c.id) as cIds, 
WHERE size(cIds) >= size(childD.mandatoryCriterionIds)

其中$profileDetailedCriterionIds是通过查询参数提供的一组id
我应该选择什么方法来获得更好的性能?

kknvjkwl

kknvjkwl1#

在Neo4j浏览器中运行这两个查询,但是在查询的开头加上关键字PROFILE。当两个查询都完成时,它会显示一个PROFILING或解释查询是如何执行的。然后转到左边的最后一个选项卡,查看使用APOC函数的部分,并比较没有使用APOC函数时的数据库命中和页面缓存。

相关问题