微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么随后的“有”步骤会使 Gremlin 查询显着变慢?

如何解决为什么随后的“有”步骤会使 Gremlin 查询显着变慢?

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

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

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

但是,如果我在此附加另一个 has 语句,例如以下内容,它甚至不会在 5 分钟内完成评估。

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

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

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

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

解决方法

这将取决于图引擎如何优化查询以及索引可以提供多少支持。使用 JanusGraph 时,假设您已经创建了相关索引,.profile() 应该显示索引有多大帮助以及时间都花在了什么地方。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。