0

我开始了我的宠物项目——这是一个决策系统。该项目建立在不同的技术之上,但 Neo4j 是主数据库和它的核心。我将 Spring Data Neo4j 5 与 Spring Boot 2 一起使用以使用 Neo4j。

我用Neo4j Community Edition 3.3.0

我的项目是一个通用应用程序,可以存储和比较任何性质和领域的决策(Neo4j 节点)。可以比较和过滤的所有内容都可以存储和呈现在那里。

现在我正在测试我的加密货币解决方案 - http://decisionwanted.com/decisions/1/blockchain/categories/cryptocurrency/comparison/5a49e8a3f2ee40361037c56c

当我在 UI 上进行错误修复和功能激活时(现在它包含大量错误,大约 70% 的 UI 功能尚未激活)我注意到 Neo4j 数据库中的数据量显着增加因为我正在收集每个值的历史,例如,在这里http://decisionwanted.com/decisions/2/bitcoin我正在收集历史值

Price (USD)
Available Supply
Total Supply
Change 1h (%)
Change 24h (%)
Change 7d (%)
Market Cap (USD)
Volume 24h (USD)

目前,系统每天增加约 2-3 百万个新节点。

这是我的 Neo4j 数据库的当前状态(系统只工作了几天)

MATCH(n) RETURN count(n)

8288217

在此处输入图像描述

现在我想知道 Neo4j 可以在单个实例(一个物理服务器)上保存多少个节点和关系以进行正常工作,以及我的应用程序将面临数据存储问题的意义何在。请指教。

4

1 回答 1

1

社区版有 640 亿个节点和 640 亿个关系的限制,按照目前的速度,您的数据库将在大约 58 年内达到这个限制。

假设您将积极主动并为自己设定一个 320 亿美元的最后期限,因此它将给您大约 29 年的时间。

在那之前会发生什么:

  • 你永远不会达到 20 亿,因为你的女朋友在编码太多之后会毁了你的笔记本电脑
  • 美国和朝鲜总统会做出让你永远不会达到这个时间表的
  • Neo4j 的创始人 Emil Efrem 将关闭 Neo4j 以创办 Frogrom's 以击败其历史上的瑞典竞争对手 Krisprolls。

所以,更严肃一点,如果一段时间后你不需要历史数据,你可以将它发送到历史存储系统中,比如 ES 动态索引或其他什么。Neo4j 在遍历关系方面速度很快,通常需要遍历较长的历史数据。

于 2018-01-02T09:27:06.260 回答