ArangoDB 性能问题i返回整个对象时的Arango查询

92dk7w1h  于 2022-12-09  发布在  Go
关注(0)|答案(1)|浏览(153)

我是ArangoDB的新手。需要一些帮助来提高查询的性能。
技术规格:ArangoDb(3.6.2),Java 8Spring启动应用程序(2.xx)。
我正在尝试运行一个查询,它返回一个对象后,合并数据从几个图表。查询运行无限当我直接返回对象,而它运行更快(像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秒。
提高其性能的可能解决方案是什么?

**注意:**此查询返回大约2百万条记录。

为保密起见,我不能在这里发布整个查询。
先谢谢你。
更新:包含用于流式处理的AqlQueryOptions。

aqlQueryOptions.stream(true),aqlQueryOptions.batchSize(10000)

消耗相同的:

while(cursor.hasNext()){
  result = cursor.next();
  //deserilize result as doc
  resultList.add(doc)
  ..... processing the data
}

但是这个迭代是一个一个地进行的,而不是像batchSize参数中指定的那样以10,000个为一个批处理。我非常肯定,我使用游标的方式是不可取的。请建议在每次迭代中以10,000个为一个批处理来使用此数据的最佳方式。

hgb9j2n6

hgb9j2n61#

对于此类查询,使用流式游标将是有益的,在创建AQL游标时将stream设置为true
以下是参考文档:

  • 对于Spring Data ArangoDB,请访问以下链接:
  • 数据库Java驱动程序()

相关问题