OrientDB中计数边的时间复杂度

时间:2017-08-22 20:39:14

标签: orientdb

我想从OrientDB中的顶点检索给定类型的传入或传出边的总数。显而易见的方法是使用count()和inE(MyEdgeType),outE(MyEdgeType)或者两个E(MyEdgeType)构造查询。但是,我担心时间的复杂性;如果这个操作是O(N)而不是O(1),我可能最好将数字存储在数据库中而不是每次需要时使用count(),因为我预计有问题的边数变得非常大。我搜索了文档,但它似乎没有列出OrientDB函数的时间复杂性。另外,我不确定是使用in / out / both还是inE / outE / bothE;我认为E版本会更快,但取决于OrientDB如何存储边缘,这可能是错误的。

将给定类型的传入/传出/两个边缘的集合计数到/从顶点进行恒定时间操作 - 如果不是,它的时间复杂度是多少?为了最有效率,我是否需要使用inE / outE / bothE或in / out / both?还是有一些我错过的其他方法?

1 个答案:

答案 0 :(得分:0)

在OrientDB中,这是O(1):inE()/outE()/bothE().size(),带或不带边缘标签作为参数。