美文网首页neo4j
neo4j中性能分析——图模型的构建

neo4j中性能分析——图模型的构建

作者: 玻璃瓶外的水 | 来源:发表于2020-01-13 14:44 被阅读0次

今天,我们需要讨论一个很简单但是也很容易被忽略的问题,我们要通过模拟现实世界中的情形,通过理论和实验的方式分析不同的图模型在neo4j中的构建及其性能。

这里我们通过旅客坐火车这个很简单的例子,来建立人与人之间的关系,最终目的是能够寻找出任意指定的2个人之间的关系(换言之就是寻找这两个人之间的最短路径)

我们采用了2种不同的方式来建立模型:

模型1:建立2类节点:人节点、车节点,1类关系:人坐车关系,当某个人乘坐了某趟车,那么他们之间就建立了人坐车的关系。

模型2:建立1类节点:人节点,1类关系:人与人之间的关系,当一个人与另一个人之间存在乘坐同一趟车的情形时,那么这2个人直接就存在一个关系。

我们首先来进行实验分析,我会通过不同规模的数据集来分析:

一、采用403个人,4趟车,其中每一百人共同乘坐一趟车,另外3个人是用来建立连接的,具体可以直接参考数据(附后),当采用模型1时来分析数据时:

当采用模型2时:

可以看出,模型1和模型2寻找最短路径的时间分别为680ms和616ms

二、采用4003个人,4趟车,其中每一千人共同乘坐一趟车,另外3个人是用来建立连接的,当采用模型1来进行分析时:

当采用模型2时:

可以看出,模型1和模型2寻找最短路径的时间分别为748ms和4505ms,相差大约6倍。

三、采用20003个人,4趟车,其中每五千人共同乘坐一趟车,另外3个人是用来建立连接的,当采用模型1来进行分析时:

当采用模型2时:

可以看出,模型1和模型2寻找最短路径的时间分别为1343ms和67948ms,相差大约50倍。

四、采用40003个人,4趟车,其中每一万人共同乘坐一趟车,另外3个人是用来建立连接的,当采用模型1来进行分析时:

当采用模型2时:

可以看出,模型1和模型2寻找最短路径的时间分别为1503ms和296162ms,相差大约197倍。

通过以上的实验可以看出来,当数据量不大的时候,2种模型的查找时间相差不大,当节点和关系量上升时,2种模型的查找时间相差非常巨大。

下面我们从理论上分析下这个问题:

根据neo4j的文档介绍,neo4j采用的是双向广度优先搜索算法来进行最短路径问题的处理,其算法的复杂度为O(V+E),其中V代表图的顶点数,E代表图的边数。

对于第一种情形,模型1导入 407个结点,406个关系,模型2导入 403个结点,20402个关系,2者相差不大

对于第二种情形,模型1导入4007个结点,4006个关系,模型2导入4003个结点,2004002个关系,可以看到模型2的关系数量上升比较快

对于第三种情形,模型1导入20007个结点,20006个关系,模型2导入20003个结点,50020002个关系,关系差不多达到5000多万个

对于最后一种情形,模型1导入40007个结点,40006个关系,模型2导入40003个结点,200040002个关系,关系差不多达到2亿多个

这里理论分析出来的结果和实验的结果基本符合,通过这样的分析和实验可以看出,当节点数量基本固定的情况下,尽量减少模型中的关系数量,对提高搜索的效率有很大的帮助。

附(数据):

链接:https://pan.baidu.com/s/1AxmymxTgWPuYRN99DBRzLA 密码:smwx

相关文章

  • neo4j中性能分析——图模型的构建

    今天,我们需要讨论一个很简单但是也很容易被忽略的问题,我们要通过模拟现实世界中的情形,通过理论和实验的方式分析不同...

  • 主流图数据库Neo4J、ArangoDB、OrientDB综合对

    1: 本地存储方式2: 内置查询语言分析3: 性能分析4: 图算法支持 本地存储方式 Neo4J neo4j数据库...

  • 图数据库建模指南

    Neo4j在构建和推荐图技术方面的最佳实践和技巧,将使您充满信心地构建具有丰富数据模型的基于图的解决方案。本节重点...

  • [JPT_03]性能测试-测试模型构建 & 用例设计

    目录结构 一、测试模型构建 从上一篇 [JPT_02]性能测试-性能指标的分析 & 定义 确定了性能测试的需求及对...

  • Neo4j属性图模型简单介绍

    本文主要是对Neo4j属性图模型简单的介绍。 Neo4j是什么? Neo4j是一款是由java语言实现的图数据库,...

  • Neo4j底层存储结构简析

    Neo4j简介   Neo4j是一个Java编写的No Schema的高性能图数据库,它将结构化数据以图的形式进行...

  • 生存分析

    ①每个基因生存分析图脚本 ②根据构建的基因模型划分高低风险组的生存曲线

  • Building a Process Model-The Gra

    图形化模型构建器选择模型后,图形化模型构建器(GMB)可以让你在流程图型环境中绘制线性连续时间动态模型。例如,下图...

  • Neo4j-1.3 关系

    Neo4j图数据库用图模型来存储和管理数据 关系是定向的(有方向) 依据方向性,Neo4j关系分为两类:单向关系双...

  • 图数据库建模准则

    先决条件 您应该了解Neo4j属性图数据模型的基础。 介绍 如果您曾经使用过对象模型或实体关系图,则带标签的属性图...

网友评论

    本文标题:neo4j中性能分析——图模型的构建

    本文链接:https://www.haomeiwen.com/subject/wpggactx.html