Neo4j如何对大量数据(千万节点及以上)进行初始化
2021-08-26 08:56:39
参考文章:
如果对大量数据进行初始化加载,那么就用Neo4j-import;增量数据的同步加载又不想暂停数据库服务,那就要用load csv,如果可以忍受数据库的短暂停服,那么Batch-inserter更适合。如果只是想插入少量的数据,且不怎么在乎实时性,那么请直接看Cypher语言。
常见的数据插入方式:
1.Cypher CREATE 语句,为每一条数据写一个CREATE
2.Cypher LOAD CSV 语句,将数据转成CSV格式,通过LOAD CSV读取数据。
3.官方提供的Java API —— Batch Inserter
4.大牛编写的 Batch Import 工具
5.官方提供的 neo4j-import 工具


【*】Neo4j社区版的neo4j最大节点存储量2**35,大约二百多亿,企业版没限制。如果服务器容许挂载的硬盘最大容量很大,采用企业版产品,那么也还是可以满足要求。不要实时性的话,titan也可以做;预算不够的话,arangodb、orientdb都支持分片存储。另外别指望all in one,慎重进行物理模型设计,仔细考虑图数据库的定位(当个图结构的索引最合适)。
【*】neo4j是权威性较高的老牌图数据库,用java写的,因为存储模型比较固定,灵活性不足,而且无法实现分片存储,所以愈发对超大规模数据适应不能;orient改进了存储模型,采用混合模型存储,可以分片存储,用java写成;arango应该借鉴了orient的设计思路,不过据说它更快,它是用c++写成的。另外,对非中立的厂商所做的性能测评,还是要持怀疑态度。
【*】插入慢一方面需要给他建立索引,另一方面可能的确是超级节点引起的。超级节点的解决方案是为Neo4j添加了wrapper,导向自己的代码。
Neo4j图数据库中的索引
给需要查询的节点标签创建索引。
CREATE INDEX ON:类别标签名 (创建索引的字段名)
CREATE INDEX ON:BaiduBaike(id)

作者:布口袋_天晴了
链接:https://www.jianshu.com/p/32ce953604d5
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2018-08-26 Linux命令行设置环境变量