暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

为什么需要用“图数据库”

林帅兵 2020-05-15
530

随着日益庞大的数据量,我们已经生活在一个数据时代,虚拟世界中形成了庞大复杂的关系网,传统的数据库在应对这类几何级增长的关系时,难以处理。所以,我们需要一种支持复杂数据关系存储与运算的数据库,即“图数据库”。

图数据库是NoSQL数据库的一种类型,也是一种非关系型数据库,它应用图理论,存储和治理实体之间的关系信息。比如说我们的社交网络关系。

我们传统的关系型数据库实际上不擅长处理关系。
特别是层级较多的关联关系(比如社交中,朋友的朋友的朋友喜欢的物品有什么等等)这样的复杂的关系表,关系型数据库会出现查询复杂,执行缓慢,内存溢出等等问题。而图数据库的独特设计恰恰弥补了这个缺陷。在一个图数据库中,最主要的组成有两种,就是节点集合和关系属性。节点结合就像传统数据库的表一样。而关系,是图数据库特有的组成。通过关系包含的属性,提供更为丰富的对事物间关系进行展现方式。

图数据库典型的应用场景是什么?
比如我们的社交软件,我们每个人的微信好友(第一层好友)平均在300-1000人左右。我们第二层好友(好友的好友)就是9万-100万,第三层好友(好友的好友的好友)就是个极大的数据。那么,我们社交软件中找出,“可能认识的人”就耗费很多时间:
深度MySQL执行时间(s)Neo4J执行时间(s)返回记录数
20.0160.01~2500
330.2670.168~110 000
41543.5051.359~600 000
5未完成2.132~800 000
可以看出,关系型数据库在处理第二层关系时的时间,我们还可以接受,到了第三层关系,我们就需要等待30s的时间,到了第四层关系需要近半个小时才可以完成,这就无法实际使用。但我们的图数据库仍可以在几秒钟完成。

常用的图数据库有什么?
Neo4J
就是属于原生图数据库,它使用的后端存储是专门为Neo4J这种图数据库定制和优化的,理论上说能更有利于发挥图数据库的性能。
JanusGraph
不是原生图数据库,而将数据存储在其他系统上,比如Hbase。
随着大数据逐渐普及,图数据库的需求场景正在不断增多,从计算和分析数据之间关系这个角度来说,图数据库比传统数据库的性能约有百倍以上的提升,比如我们在工业生产中分析上千个工艺参数之间的关系。由此可见图数据库是最为前沿的方向之一。
文章转载自林帅兵,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论