1.7 Neo4j的体系结构

本节将从数据库底层设计的角度,揭开Neo4j数据库的神秘面纱,了解Neo4j为了实现图的存储所采用的体系结构,揭秘为什么对于复杂联系的查询使用图数据库会比使用关系数据库要更快。

Neo4j最初的设计动机是为了更好地描述实体之间的联系。现实生活中,每个实体都与周围的其他实体有着千丝万缕的关系,这些关系里存在着大量的潜在信息。但是,传统的关系数据库更加注重刻画实体内部的属性,实体与实体之间的关系主要通过外键来实现。因此,在查询一个实体的关系时需要join操作,特别是深层次的关系查询需要大量的join操作,而join操作通常又非常耗时。随着现实生活中关系数据的急剧增加,导致关系数据库已经逐渐难以承载查询海量数据深层次关系需要大量数据库表操作带来的运算复杂性,Neo4j在这样的情况下应运而生。