我想找到沒有配置文件的用戶組。Arangodb AQL過濾器不在收集,很慢
ArangoDB 2.4.3
LENGTH(users) -> 130k
LENGTH(profiles) -> 110k
users.userId -> unique hash index
profiles.userId -> unique hash index
我製作的這個AQL片段比在夏季中穿過大峽谷的蝸牛慢。
LET usersWithProfiles = (/* This part is ok */
FOR i IN users
FOR j IN profiles
FILTER i.userId == j.userId
RETURN i
)
LET usersWithoutProfiles = (/* This is not */
FOR i IN usersWithProfiles
FILTER i NOT IN users
RETURN i
)
RETURN LENGTH(usersWithoutProfiles)
我很確定有一個完全正確的做法,但我錯過了它。有任何想法嗎?
編輯1(後@dothebart的迴應):
這是新的查詢,但它仍然是非常緩慢
LET userIds_usersWithProfile = (
FOR i IN users
FOR j IN profile
FILTER i.userId == j.userId
RETURN i.userId
)
LET usersWithoutProfiles = (
FOR i IN users
FILTER i.userId NOT IN userIds_usersWithProfile
RETURN i
)
RETURN LENGTH(usersWithoutProfiles)
神奇,像魅力工作!謝謝(併爲解釋以及)!:) – rollingBalls 2015-02-10 19:05:42