9.3.4 图存储

2025-06-14 19:24:06 更新

图存储是一个包含一连串节点和关系的系统。图存储有三个字段:节点(对象)、关系(对象之间的联系)和属性

节点:通常是现实世界中对象的表现,如人名、组织、电话号码、网页或计算机节点;

关系:认为是对象之间的联系,通常被表示为图中两个节点之间连接线

目的:分析对象之间的关系、通过特定方式访问图中节点

场景:社交网路、规则引擎、生成组合和需要快速分析复杂网络结果并从中找出模式

举例:某人社交网络示意图,与他建立直接或者间接联系的朋友数量,以及不同朋友之间的紧密程度

图数据库善于处理大量复杂、互连接、低结构化的数据,这些数据变化迅速,需要频繁的查询。

图数据库和传统的关系型数据库操作的不同

操作

关系型数据库

图数据库

查询

根据索引或逐条查询

采用图的算法

事件处理

不能将事件通知到外部程序

有监听接口可供外部程序监听

创建索引

只能对表或视图创建索引,数据量一大,则效率迅速下降

可以创建只适用于图数据的“位置”索引、“特性”索引、“对象数据”索引等,且性能高效





常见的图数据库

名称

说明

注释

AllegroGraph


RDF GraphStore

DEX


High-performance Graph Database

Neo4j

提供了大规模可扩展性,在一台机器上可处理数十亿节点/关系/属性的图像,可以扩展到多台机器并行运行。解决了查询的性能衰退。以相同速度遍历节点与边,与数据量无关。


FlockDB

由Twitter开发,不优化遍历图,优化了超大规模邻接矩阵查询,快速读写和可分页查询。主要是解决可伸缩性。将图存储为一个边的集合