任务:更新多个边属性的最快方式。出于性能方面的考虑,我忽略了图形方法,直接使用集合进行过滤。
ArangoDB 2.8b3
查询 [Offer - 边集合]:
FOR O In Offer
FILTER O._from == @from and O._to == @to and O.expired > DATE_TIMESTAMP(@newoffertime)
UPDATE O WITH { expired: @newoffertime } IN Offer
RETURN { _key: OLD._key, prices_hash: OLD.prices_hash }
我在_to、_from上建立了系统索引,同时在expired上建立了范围索引。
查询说明显示:
7 edge Offer false false 49.51 % [ `_from`, `_to` ] O.`_to` == "Product/1023058135528"
系统索引仅用于过滤部分记录(_to),而不是同时过滤起始和结束记录(_from,_to),“expired”索引也没有被使用。请解释一下这种行为的原因,并且如果我在规划数据模型时确定要使用哪些索引,则有可能指定最短路径的提示吗?