我经常将数百万条记录插入新的(通常是易失性的)集合中,从而使用AQL语句,例如:像这样:
FOR w IN relatedAffils
COLLECT from = w._from, to = w._to INTO agg
INSERT { "_from": from, "_to": to, "weight": LENGTH(agg),
"fromAff": DOCUMENT(from).affiliation,
[...SNIP...]
} INTO relatedAffilsAggregated
我明白,对象越大,执行它所需的时间就越长。但执行时间似乎不是以线性方式增加,而是更重。因此,稍微改变音量可能会导致执行时间增加10-50倍。一个可能的原因可能是WAL日志变得越来越大,Arango的执行速度对此非常敏感。
现在我的问题:如何在AQL查询中跳过事务安全性,而根本不需要它?我的意思是,我使用临时易失性表,如果出现问题,我只需卸载表,一切正常。
可能有像
这样的东西FOR w IN relatedAffils
COLLECT from = w._from, to = w._to INTO agg
INSERT { "_from": from, "_to": to, "weight": LENGTH(agg),
"fromAff": DOCUMENT(from).affiliation,
[...SNIP...]
} INTO relatedAffilsAggregated OPTIONS { noTransaction }