gremlin - 为什么后续的 "has"步骤会使 Gremlin 查询明显变慢?

标签 gremlin janusgraph

我试图了解 gremlin 查询的工作原理,特别是当涉及“AND”之类的查询时。

当我执行以下查询时,它会在大约 17 秒内生成结果。

g.V().has(id, gte(51200)).has(id, lte(51200000)).count().profile()

但是,如果我向其附加另一个 has 语句(如下所示),它甚至不会在 5 分钟内完成评估。

g.V().has(id, gte(51200)).has(id, lte(51200000)).has('entity_type', 'Human').count().profile()

我的期望是,添加的“has”步骤只会在经过前两个 has 步骤的遍历中执行。因此,我没想到最后一个 has 语句会给整个查询增加很多时间,因为它只是检查属性的值。

我的后端是 JanusGraph,配置有 ElasticSearch 和 Google BigTable。它加载了大约 500 万个顶点。

对此的任何指导将不胜感激。

最佳答案

这将取决于图形引擎如何优化查询以及索引可以提供多少支持。使用 JanusGraph 时,假设您已经创建了相关索引,.profile() 应该向您显示索引的帮助程度以及时间花在了哪里。

关于gremlin - 为什么后续的 "has"步骤会使 Gremlin 查询明显变慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68525062/

相关文章:

gremlin - 有没有办法在 TinkerGraph 上定义模式约束?

janusgraph - 已超过最大帧长 65536

apache-spark - Spark 如何加速批量加载到 JanusGraph?

java - 如何在我的 java 代码中获取 JanusGraph 实例?

docker - 使用nodetool远程检查cassandra的状态。错误:连接被拒绝

java - DSE 5.0 Graph with Java 中真的需要executeGraph()吗?

gremlin - Gremlin BothE() 会重复计算边吗?

graph-databases - Gremlin 掉落多个顶点

java - Gremlin:查找给定顶点的所有下游(出)路径

java - 层次关系的图遍历