Datastax 中的 Gremlin count() 查询太慢

Gremlin count() query in Datastax is too slow

我在 datastax enterprise 中有 3 个节点,并在这些节点上加载了 6500 万个顶点和边。当我在图表上使用 dse studio 或 gremlin 控制台和 运行 gremlin 查询时,查询速度太慢。我定义了任何一种索引并再次测试但没有效果。 当我 运行 查询例如 "g.v().count()" cpu 用法和 cpu 平均负载没有太大变化,而如果我 运行 cql 查询,分布在所有节点和 cpu 使用率和 cpu 所有节点上的平均负载是一个重大变化 在这种情况下,高效 gremlin 查询的最佳实践或最佳配置是什么?

在对不同查询进行多次测试后,我得出的结论是,当您在 属性 个顶点上定义索引并查找特定顶点时,gremlin 似乎在对百万个顶点进行计数查询时出现问题: g.V().hasLabel('member').has('C_ID','4242833') 此查询的时间低于 1 秒,这是可以接受的。问题是为什么 gremlin 对百万顶点的计数查询有问题?

基于

count() 的遍历应该通过 OLAP 和 Spark 执行,以获得您正在使用的大小的图形。如果您使用基于标准 OLTP 的遍历,您可能会等待此类查询的等待时间很长。

请注意,此规则适用于任何必须执行 "table scan" 的图计算(即触及图中 vertices/edges 的全部或大部分)。这个问题也不是 DSE Graph 特有的,几乎适用于任何图形数据库。