繁体   English   中英

在 JanusGraph(gremlin) 中更新许多边的属性非常慢

[英]Updating the properties of many edges in JanusGraph(gremlin) is very slow

有一个JanusGraph数据库,数据量很大,大约有6亿条边。

每一面都有属性“hash”和“timestamp”。

我想根据“哈希”属性更新每个边缘的“时间戳”属性。 但是,更新速度非常慢。

以下是我如何为“哈希”属性建立索引:

hash = mgmt.makePropertyKey('hash').dataType(String.class).cardinality(SINGLE).make()

mgmt.buildIndex('HashComposite', Edge.class).addKey(hash).buildCompositeIndex()

这是我如何更新“时间戳”属性:

g.E().has('hash', 'c2719586fb6a26d492bf65a0263a1c52f5ff6ef3').property("timestamp", timestamp).next()

其实我发现即使不更新timestamp属性,只是遍历边缘,速度还是很慢:

g.E().has('hash', 'c2719586fb6a26d492bf65a0263a1c52f5ff6ef3').next()

为什么建立“哈希”索引时遍历边缘的速度如此之慢?

您可以在查询上运行profile以验证索引是否实际被使用:

g.E().has('hash', hash).profile()

您是在加载图形数据之前还是之后创建了索引? 如果之后,您应该首先重新索引数据:

mgmt.updateIndex(mgmt.getGraphIndex("HashComposite"), SchemaAction.REINDEX).get()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM