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