gpt4 book ai didi

Neo4j:Cypher WHERE 子句与 MATCH 子句中的花括号 - 哪个更好?

转载 作者:行者123 更新时间:2023-12-03 20:54:09 24 4
gpt4 key购买 nike

我是 Neo4J 的新手,过去几天一直在学习 Cypher 查询语言。

我意识到我可以像这样写我的查询......

MATCH (b:Beverage)<-[:likes]-(p:Person)-[:likes]->(r:Restaurant) 
WHERE b.name = 'Beer' and r.name = 'KFC'
RETURN p.name

……或者像这样……
MATCH (b:Beverage{name:'Beer'})<-[:likes]-(p:Person)-[:likes]->(r:Restaurant{name:'KFC'}) 
RETURN p.name

哪种方法在性能方面更好?为什么?

谢谢你。

最佳答案

很抱歉,@a-rodin 的回复在这里是错误的:您的两个语句都产生了完全相同的查询计划。您可以通过在语句前加上 EXPLAIN 来验证这一点。并比较查询计划。

为了可读性,我会构造有问题的查询:

MATCH (p:Person)-[:likes]->(b:Beverage{name:'Beer'}),
(p)-[:likes]->(r:Restaurant{name:'KFC'})
RETURN p.name

这里的查询读起来就像一个简单的英语句子“匹配一个喜欢啤酒和肯德基餐厅的人”。

关于Neo4j:Cypher WHERE 子句与 MATCH 子句中的花括号 - 哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32118750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com