我想从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?还是有一些我错过的其他方法?
答案 0 :(得分:0)
在OrientDB中,这是O(1):inE()/outE()/bothE().size()
,带或不带边缘标签作为参数。