多地图/减少索引与关系联接

时间:2011-10-15 08:45:22

标签: nosql relational-database ravendb

使NoSQL数据库更具可扩展性的关键因素之一是缺少连接操作,这是RDBMS的重要组成部分。但与此同时,例如,RavenDb包含Multi Maps / Reduce索引功能,看起来与join类似。

为什么连接会限制可伸缩性,但Multi Maps / Reduce索引在解决非常类似的任务时却没有?

2 个答案:

答案 0 :(得分:4)

这里有两个值得纠正的错误观念。首先,在NOSQL完全定义任何类型的数据库范例(而不仅仅是流行的软件产品集合的名称)的范围内,必须意味着非关系型。 NOSQL只是意味着不是SQL而不仅仅是SQL。所以NOSQL数据库很可能是关系型的,可以支持连接。

其次,连接不限制可伸缩性。关系术语的连接是逻辑操作而不是物理操作。它可以通过许多不同的方式实现,包括使用Map / Reduce。

答案 1 :(得分:1)

这取决于您实际执行操作的时间。 加入操作通常是即时执行的,这意味着您在读取时会产生成本。那是昂贵的,因为你的查询频率远高于写作。

RavenDB多地图/减少操作发生在后台,查询它们随身携带,无需计算成本。索引完成后,查询它基本上是免费的,只有在数据发生变化时才会进行任何额外的工作。