【发布时间】:2021-05-21 09:37:10
【问题描述】:
我想检索大量项目但使用限制子句:
g.V().hasLabel('foo').as('f').limit(5000).order().by('f_Id',incr).by('f_bar',incr).select('f').unfold().dedup()
这个查询需要很长时间,并且要消耗大约 800 MB 的内存来下载集合
我使用以下查询:
g.V().hasLabel('foo').as('f').has('propA','ValueA').has('propB','ABC').limit(5000).order().by('f_Id',incr).by('f_bar',incr).select('f').unfold().dedup()
下载这个集合更快,消耗更少的内存大约 500 MB,但仍然很高。
如果我不想按属性 A 和 B 进行过滤,我的问题是如何仅限制优化第一个查询。
第二个问题为什么这两个结果之间的内存大小有如此大的差异?在这两个查询中,我将 5000 个项目下载到内存中。有什么方法可以减少这种消耗。
我将 GremlinDriver 用于 .Net。
【问题讨论】:
-
只是澄清一下,您是说您的数据是这样的,
g.V().hasLabel('foo').has('propA','ValueA').has('propB','ABC').limit(5000)本身会产生 5000 个结果吗?因此有 5000 个或更多带有标签“foo”的顶点以及“propA”和“propB”的值? -
@stephenmallette 是的,这是正确的
标签: performance azure-cosmosdb gremlin gremlin-server