我正在嘗試使用密碼找到10個用戶「mike」不喜歡的帖子。將where子句與NOT關係放在一起比使用可選關係進行匹配更有效,然後檢查where子句中該關係是否爲空?具體而言,我想確保它不會完成全表掃描,並確保這是一個可伸縮查詢。cypher中的where子句的效率vs匹配
下面是我使用
START user=node:node_auto_index(uname:"mike"),
posts=node:node_auto_index("postId:*")
WHERE not (user-[:LIKES]->posts)
RETURN posts SKIP 20 LIMIT 10;
或者,我可以做一些事情,我在MATCH可選的關係
START user=node:node_auto_index(uname="mike"),
posts=node:node_auto_index("postId:*")
MATCH user-[r?:LIKES]->posts
WHERE r IS NULL
RETURN posts SKIP 100 LIMIT 10;
在控制檯上的一些快速測試,篩選似乎表明在更快的性能是什麼第二種方法。我是否有權假定第二個查詢更快?如果是這樣,爲什麼?
你的第二個查詢是一樣的一日一個,除了SKIP 100值。不應該在某處存在MATCH子句? – ulkas
Doh,是的,複製並粘貼錯誤。問題現在更新爲正確的第二個示例。 – MonkeyBonkey