CPU: I3 2.4Ghz 4核,内存8G
JVM:-Xms1024m -Xmx1024m -Xmn512m-XX:PermSize=128m -XX:MaxPermSize=256m
4000节点(50个属性),4000关系:1秒,其间cpu使用率25%,761M
8000节点(50个属性),8000关系:2秒,其间cpu使用率25%,829M
16000节点(50个属性),16000关系:5秒,其间cpu使用率25,983M
24000节点(50个属性),24000关系:9秒,其间cpu使用率25%,1079M
32000节点(50个属性),32000关系:14秒,其间cpu使用率25%,1187M
40000节点(50个属性),40000关系:执行1多分钟以后直接报outOfMemery:
java heap space
内存使用:
结论:插入时用事务插入接口的话,在JVM 1G内存的配置下最后能够插入3万多个节点和关系,再多就内存溢出。
JVM:采用JVM默认设置
40000节点(50个属性),40000关系:6秒,其间CPU使用率25%,内存288M
80000节点(50个属性),80000关系:17秒,其间CPU使用率25%,内存288M
120000节点(50个属性),120000关系:31秒,其间CPU使用率25%,内存289M
200000节点(50个属性),200000关系:56秒,其间CPU使用率25%,内存288M
分析:
根据官方文档,当少量数据(根据测试观察5000条以下)插入时,建议使用事务型插入接口(即通常NEO4J的数据操作接口),速度还是可以的;当数据量比较大时,建议采用专用的BatchInserters接口,这个接口在插入时不创建事务,估计内存占用很少,基本上在不同数据量的操作期间内存无太大变化。由此可见,在向NEO4J导入大量数据时,可以有以下两种方法实现快速插入:
- 化大为小法
此法是将大量的数据集合分成5000条或者更少集合,使用事务型插入接口插入数据,这样整体的插入时间按照以上的测试结果,100000条数据可以在30秒内插入完毕。缺点是需要分拆数据集合为小的集合;优点是当用户已经在运行一组NEO4J的数据库时,只需改造相关的代码即可,也不需要在导入期间暂停数据库。
- 批量插入法
此法不管数据量多大,都可以实现快速插入,实现速度和内存的平衡,适合在初始化数据库时(或者需要大量导入数据时)一次性导入大量的数据;缺点是导入数据时要暂停数据库,采用BatchInserters接口导入,不能实现业务无中断运行。
建议:
采用化大为小法,当插入(导入)数据量大于1000个时,采用分批插入的方法,可以达到快速插入数据的目的,也能保证内存占用量不会有太大的变化而导致OOM。
分享到:
相关推荐
Neo4j大量CSV数据导入测试数据,包含运行测试批处理脚本
neo4j数据迁移 neo4j数据库切换 neo4j切换 ,自己整理的资料汇总
使用工具http://download.csdn.net/detail/shenshouer/4102126生成的数据,具体使用请参考http://blog.csdn.net/shenshouer/article/details/7515253
首先安装 执行导入数据 neo4j-admin import 启动neo4j服务或neo4j console 访问 http://localhost:7474/browser/
neo4j基于嵌入式的测试数据生成与导入源代码 数据生成代码在源代码文件夹src/test/java中
该文档详细描述如何通过指令将图数据库neo4j中的数据进行打包并导出,然后将导出的数据通过相关指令导入另外的图数据库neo4j中,亲测实用。
neo4j数据生成工具,详细使用请参照地址:http://blog.csdn.net/shenshouer/article/details/7515253
Neo4j 性能测试 编写此代码是为了测试 Neo4j 数据库性能。 请注意:代码不完全完整,到目前为止包括以下功能: 清除数据库 用虚拟随机数据填充数据库 尚未实施: 3. 读/写测试4. Amazon AWS 分布式读写测试 运行...
neo4j数据离线生成工具是一款专门针对neo4j的数据离线生成工具。如何封号的制作neo4j数据离线呢?小编为你们推荐neo4j数据离线生成工具。该款工具主要用于生成com.run.data.Importer类,可以修改main函数、数据规则...
由vis.js支持的图形可视化以及来自Neo4j的数据。 产品特点 连接到Neo4j实例以获取实时数据 用户指定的标签和要显示的属性 用户指定的Cypher查询来填充 为节点的图像的URL指定节点属性 指定边缘厚度的边缘属性 指定...
springboot集成neo4j图数据库,使用java语言连接数据库mysql和neo4j,实现将mysql数据插入neo4j中。 实现的功能有对neo4j数据进行统计分析、关系遍历增删改查等 。并且使用d3对查询结果数据进行页面展示!
二、 neo4j-driver 能够直接通过前端获取数据。 三、vis.js 绘图 四、 echarts绘图 neo4j是什么? 简单来说,这是一种比较热门的图数据库,图数据库以图形形式存储数据。 它以节点,关系和属性的形式存储应用程序的...
一个帮助程序库,用于为Neo4j数据库设置批量数据插入 neo4j-bulk库的主要目标是创建一种简单直观的方法来为neo4j批量API设置数据模型,从而为测试套件设置初始数据库状态。 用法 首先,安装neo4j-bulk作为开发依赖...
java连接neo4j图形数据库增删改数据demo ,希望可以帮到你
由vis.js支持的图形可视化以及来自Neo4j的数据。 产品特点 连接到Neo4j实例以获取实时数据 用户指定的标签和要显示的属性 用户指定的Cypher查询来填充 为节点的图像的URL指定节点属性 指定边缘厚度的边缘属性 指定...
Java读取CSV插入Neo4j并生成Echarts关系图
这是一款对前端框架d3封装比较完善的一个示例,简单、易懂,非常推荐给需要对neo4j数据力导向图的朋友使用,包含了节点的动态添加(这个是重点)
如何将大规模数据导入Neo4j
完整项目导入数据到Neo4j,通过jdbc查询Neo4j数据库,用SSM框架展示到前台,项目部署后可在前台批量导入数据,增量导入数据,添加节点,删除节点,修改节点,查询节点 有了它再也不用趟Neo4j的坑 解压密码是 neo4j