存储大型且不断增长的图形的最佳数据库是什么?

问题描述

我有一个 Postgresql 表,由 usersfollowers 组成,名为 relations,有 2 亿行,并且它以每周 1000 万新用户和他们之间新关系的速度增长。我在列上设置了一个索引,我需要每一对用户和关注者都是唯一的。一个用户的最大关注数为5000,用户查询是双向的,如:
用户 SELECT users,followers FROM relations WHERE users NOT IN (1,2,3);
关注者 SELECT users,followers FROM relations WHERE followers NOT IN (1,3);
时间: 像 SELECT COUNT(*) FROM relations; 这样的简单查询在我的系统中需要 10 秒,而我需要等待半小时才能执行前面提到的查询

存储这个图的最佳数据库是什么(高写入率和高读取率)

解决方法

InfiniteGraph 肯定会处理数据量和增长率,并且对于 50 GB 以下的数据库有一个免费版本。我们定期测试其每小时摄取数十亿个节点和边缘的能力。这些测试在多节点云架构上运行,因此您的硬件性能可能会有所不同。

InfiniteGraph 支持索引。

InfiniteGraph 查询语言是“DO”,您的查询将类似于:

MATCH path = (u:User)-[:Relation]->(f:Follower) RETURN u,f;

FROM Relation return COUNT(*);

免责声明:我是 InfiniteGraph 的制造商 Objectivity 的现场运营总监。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...