OrientDB 中计算边的时间复杂度

Time Complexity of Counting Edges in OrientDB

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

计算给定类型 to/from 的 incoming/outgoing/both 条边的集合是否为一个顶点的常量时间操作——如果不是,它的时间复杂度是多少?为了最有效,我需要使用 inE/outE/bothE 还是 in/out/both?还是我完全错过了其他一些方法?

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