我的问题是从开发人员的角度来看(不是特别尊重用户),可能有点凌乱。 我想知道节点和关系的结构如何在逻辑上存储在数据库中。就像,当我说我有bla bla信息时。哪里? - 然后答案是,在BOOK中,以网格形式或页面上的线条。在RDBMS的情况下,数据以网格/表格格式存储。但我无法理解图形如何存储在Neo4j / graph数据库中。 我正在使用neo4j客户端2.1.2。
答案 0 :(得分:11)
http://www.slideshare.net/thobe/an-overview-of-neo4j-internals有点过时,但这可以让您对Neo4j逻辑表示有一个很好的概述。
节点引用:
关系被组织为双重链接列表。 关系指向:
由于这种链接结构,遍历的概念(即查询数据的方式)很容易出现。这就是像Neo4j这样的图形数据库擅长遍历图形结构数据的原因。
我的粗略猜测也是,因为Neo4j版本2.1(和its newly introduced dense node management),节点的关系按类型隔离。通过这样做,如果节点N例如是类型A的5个关系的起始节点和类型B的5百万个rel,则针对N遍历类型A的rel仍然是O(n = 5)。