[英]Neo4j Cypher Performance of Optional Match
我正在嘗試編寫一個查詢,以計算按投票所屬州分組的選舉的總票數。 我希望即使有0票,也能返回所有州。 以下查詢使用可選的match返回所有狀態,而不管是否已投票。
MATCH (state:State)
OPTIONAL MATCH (state)<-[:FROM]-(:User)-[:CAST]->(vote:Vote)-[:FOR]->(:Election{id:'ABC123'})
RETURN state, count(vote)
在3064ms內返回50行 。
如果刪除可選匹配項,查詢的性能會更好:
MATCH (state:State),(state)<-[:FROM]-(:User)-[:CAST]->(vote:Vote)-[:FOR]->(:Election{id:'ABC123'})
RETURN state, count(*)
在406毫秒內返回49行 。
我的問題是
為什么兩個查詢之間的性能如此巨大的差異?
有沒有更好的方法來構造查詢以提高性能並仍然滿足要求?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.