最近,我开始使用cayley和ArangoDB来播放他们的图表数据存储。
在阅读和观看有关图形数据库的视频时,我脑海中浮现出一个问题:是什么让图形数据库与普通SQL中的典型(和可怕的)EAV存储区如此不同(和“非常棒”)?
在此presentation中,以下引文显示:
图形数据库是提供无索引邻接的任何存储系统
但无索引邻接究竟意味着什么?这对性能或设计有何影响?
使用以下架构,幻灯片中列出的所有查询都是可能的,并且非常简单:
CREATE TABLE "graph" (
"subject" TEXT NOT NULL,
"predicate" TEXT NOT NULL,
"object" TEXT NOT NULL
);
-- Give me all the vertex that go from "A":
SELECT "object" FROM "graph" WHERE "subject" = 'A';
-- Give me all the pairs connected by "C":
SELECT "subject", "object" FROM "graph" WHERE "predicate" = 'C';
-- Give me all the vertex that go to "B":
SELECT "subject" FROM "graph" WHERE "object" = 'B';
-- Give me all the vertex that go to "B" through "C":
SELECT "subject" FROM "graph" WHERE "object" = 'B' AND "predicate" = 'C';
答案 0 :(得分:2)
在ArangoDB中,这是一个简单的电话:
GRAPH_SHORTEST_PATH(“yourGraph”,“StartVertex”,“EndVertex”)
如果您对ArangoDBs图形模块提供的各种功能感兴趣,我可以推荐阅读graph manual和示例,我很确定您会发现很多用例,您将难以实现相同的功能在mysql中。