我开始了我的宠物项目 - 这是一个决策系统。该项目建立在不同的技术基础之上,但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可以在单个实例(一个物理服务器)上保存多少节点和关系以进行正常工作,以及当我的应用程序将面临数据存储问题时的重点。请指教。
答案 0 :(得分:1)
社区版限制了64亿个节点和64亿个关系,按照目前的速度,您的数据库将在大约58年内达到此限制。
假设您将积极主动,并为自己设定一个32亿的截止日期,这样它将给你大约29年。
到那时会发生什么:
因此,以更严肃的方式,如果您在一段时间后不需要历史数据,则可以将其发送到历史存储系统,如ES动态索引或其他任何内容。 Neo4j在遍历关系方面很快,通常不必遍历长期的历史数据。