如何计算OrientDB中的连接组件

时间:2015-08-21 14:47:25

标签: orientdb gremlin

OrientDB是否支持connected components的有效计算?

我对图数据库没有经验。我的直觉是这个操作应该非常有效。

如果它得到有效支持,查询将如何查找所有连接的组件?

2 个答案:

答案 0 :(得分:1)

我有同样的问题,但我最终写了一个OSQL查询来计算图表中的连通组件,这里是my solution

答案 1 :(得分:-1)

以下是OrientDB website的摘录。我突出了一些相关部分。

  

OrientDB可以像任何其他文档数据库一样嵌入文档,但是   也支持人际关系。它不使用昂贵的JOIN。代替,    OrientDB使用记录之间的超快速,持久性指针   来自图数据库世界。您可以遍历部分或全部   只需几毫秒的记录树和图表。

     

此图显示原始文档的效果   分成两个使用客户的记录ID#8:124链接的文档   将订单连接到客户文档。可以想到链接   作为内存中的指针,但在磁盘上持久存在。

     

[剪断]

     

配备文档和关系DBMS,您的数据越多   有,数据库将越慢。连接有很大的运行时间   成本。相反,OrientDB将关系作为物理链接处理   创建边缘时的记录,仅分配一次O(1)。相比   这是一个每次都“计算”关系的RDBMS   您查询数据库O(LogN)。 使用OrientDB时,遍历速度不是   受数据库大小的影响。无论是一个人,它总是不变的   记录或1000亿条记录。这在Big时代至关重要   数据!

这是一个从tutorial document中获取的示例查询,该查询将获得名为Luca的所有朋友。

SELECT EXPAND( BOTH( 'Friend' ) ) FROM Person WHERE name = 'Luca'