[英]Performance Issue i Arango query while returning the whole Object
我是 ArangoDB 的新手。 需要一些帮助来提高查询的性能。
技术规格: ArangoDb(3.6.2) ,Java 8 Springboot 应用程序(2.xx) 。
我正在尝试运行一个查询,它在合并来自几个 Graphs 的数据后返回一个对象。 当我直接返回对象时,查询会无限运行,当我只返回对象的一个元素时,它运行得更快(如 75 秒)。
for d in data
return d
输出:
[{
accntDtl:{ //account detials here
},
accntPrfl:{//accnt profile here
},
//few other parameters
}]
return d
- 无限运行。
而return d.accnt[0].accntDtl[0].accntId
- 在 75 秒内执行..
什么是提高其性能的可能解决方案?
注意:此查询返回大约 200 万条记录。
出于保密目的,我无法在此处发布整个查询。
提前致谢 。
更新:包括用于流媒体的 AqlQueryOptions。
aqlQueryOptions.stream(true),aqlQueryOptions.batchSize(10000)
消费相同:
while(cursor.hasNext()){
result = cursor.next();
//deserilize result as doc
resultList.add(doc)
..... processing the data
}
但是此迭代是 1 次 1 次进行的,而不是按照 batchSize 参数中指定的 10,000 次进行。 我很确定,使用游标的方式是不可取的。 请建议在每次迭代中以 10,000 个批次使用此数据的最佳方法。
对于这样的查询,使用流游标将是有益的,在 AQL 游标创建时将stream
设置为true
。
这是参考文档:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.