我是Neo4J的新手,过去几天一直在学习Cypher查询语言.
我意识到我可以这样写我的查询......
MATCH (b:Beverage)<-[:likes]-(p:Person)-[:likes]->(r:Restaurant)
WHERE b.name = 'Beer' and r.name = 'KFC'
RETURN p.name
Run Code Online (Sandbox Code Playgroud)
......或者像这样......
MATCH (b:Beverage{name:'Beer'})<-[:likes]-(p:Person)-[:likes]->(r:Restaurant{name:'KFC'})
RETURN p.name
Run Code Online (Sandbox Code Playgroud)
哪种方法在性能方面更好?为什么?
谢谢.
我很遗憾地说,但@ a-rodin的回复在这里是错误的:你的两个陈述都会产生相同的查询计划.您可以通过在语句前添加前缀EXPLAIN并比较查询计划来验证.
为了便于阅读,我将构建有问题的查询:
MATCH (p:Person)-[:likes]->(b:Beverage{name:'Beer'}),
(p)-[:likes]->(r:Restaurant{name:'KFC'})
RETURN p.name
Run Code Online (Sandbox Code Playgroud)
在这里,查询读起来像一个简单的英语句子"匹配喜欢啤酒和喜欢肯德基餐厅的人".
| 归档时间: |
|
| 查看次数: |
743 次 |
| 最近记录: |