6

我知道数据库通常可以使用主/从复制水平扩展。当并发读取的数量不断增长时,这是一个很好的策略。

然而,随着并发写入的数量或数据量开始增长,主/从复制并没有为您带来任何好处,因此您需要改为对数据进行分区

这适用于键值场景。对我来说一个经典的例子是 TinyURL/bit.ly;短 URL foo 的读/写数据可以完全独立于短 URL bar 的读/写数据。

但是,如果您处于图形场景中,您应该怎么做?更具体地说,是否可以对像Neo4j这样的图形数据库进行分区?如果是这样,怎么做?

我无法理解如何在不违背使用图形数据库的目的(高效遍历)的情况下分解图形。

4

1 回答 1

5

您很少遍历整个图结构。

此外,图结构很少在所有节点之间紧密连接。

稍加注意,您就可以定位连接良好的节点集群,这些节点由与其他集群的少量连接隔开。

http://en.wikipedia.org/wiki/Cluster_analysis

如果基于集群进行分区,那么集群内的遍历可能会更快,但到另一个集群的遍历会更慢。

分区的总体好处取决于集群内遍历与集群间遍历的比率。

于 2011-03-17T18:30:40.923 回答