基于NoSQL数据库管理系统的物理设计策略
1. Neo4j简介
Neo4j是一款开源的原生图数据库管理系统(DBMS),它提供了符合ACID(原子性、一致性、隔离性、持久性)的事务后端,其源代码使用Java和Scala编写。Neo4j有效实现了属性图模型,该模型由节点、边、属性和标签构成。属性是节点或关系的一个特性,标签则用于标记一组节点或关系,以表示它们在模型中的角色。
Neo4j能够为查询生成物理或执行计划,执行计划是一个由操作符组成的树状结构,操作符可分为以下五类:
- 扩展操作符 :用于遍历图,给定一组节点,它会遍历出边或入边关系并检索末端节点。
- 节点检索操作符 :检索图中搜索的起始点。若未指定索引,则会扫描所有节点;反之则使用索引。这些操作符是执行计划中的叶节点。
- 过滤操作符 :选择数据的一个子集,例如移除不满足特定条件的所有节点,或只保留前X个节点。这些操作符通常位于其他操作符之间。
- 连接操作符 :将两个已扩展路径的分支结果进行整合,当执行计划需要合并两个分支以产生一个结果时会执行此操作。
- 聚合操作符 :对应于常见的聚合操作,如计数、求和、求平均值等。
生成执行计划时,Neo4j需要了解一些统计信息,包括具有特定标签的节点数量、按类型划分的关系数量、每个索引的选择性、按类型划分的关系数量,以及按起始或结束节点标签分组的关系数量。这些统计信息用于估计每个操作符预期产生的记录数。一旦规划器构建出最佳计划,就会执行该计划
Neo4j物理设计优化指南
超级会员免费看
订阅专栏 解锁全文
5857

被折叠的 条评论
为什么被折叠?



