你能分区图数据库吗?如果是这样,怎么样?

时间:2011-03-17 18:25:40

标签: database-design scalability graph-databases

我知道数据库通常可以使用master/slave replication水平扩展。当并发读取次数越来越多时,这是一个很好的策略。

由于并发写入 或仅数据量的数量开始增长,但主/从复制无法获得你做了什么,所以你需要对你的数据进行分区

这适用于键值场景。一个典型的例子是TinyURL / bit.ly;读取/写入短URL的数据foo可以完全独立于读取/写入短URL栏的数据。

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

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

1 个答案:

答案 0 :(得分:4)

您很少遍历整个图表结构。

此外,图形结构很少在所有节点之间高度连接。

稍加注意,您可以找到连接良好的节点群集,这些群集由与其他群集的少量连接分开。

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

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

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