土法炼钢兴趣小组的算法知识备份

【图数据库内核】属性图 · Store Format · Expand · Cypher 计划边界

文章导航

分类入口
databasegraph
标签入口
#graph-database#neo4j#property-graph#cypher#gremlin#store-format#block-format#traversal#expand

目录

图数据库内核:属性图 · Store Format · Expand · Cypher 计划边界

站内数据库栈已覆盖行存(PostgreSQL / InnoDB / SQLite)、列存与湖仓、流与查询引擎、RocksDB向量Redis、全文、TiKV / FoundationDBWiredTigerdb-frontierllm-infra 又把 GraphRAG / 知识图谱应用层钉在检索叙事上。仍缺一层:属性图作为一等公民时,边与邻接如何落盘、一次 hop 走哪些指针、超节点如何改写 I/O、Cypher 计划如何被存储卡住。

本系列回答:MATCH (a)-[:R]->(b) 从模型到 store format、page cache、索引与 expand 的完整代价链,以及何时必须上原生图引擎。

写:

不写:完整 Cypher / GQL 语言教程、Aura 定价、未实测跨引擎延迟排行、GNN 训练全书、RDF/SPARQL 全书、Fabric 分布式查询全书。

系列状态:01–13 已发布;14–16 待写(2026-08-09)。 规划见 PLAN.md。无本机 Neo4j 环境则不粘贴伪造 SHOW DATABASES / PROFILE 输出。

版本锚定:Neo4j Operations Manual(Product Version 2026.07 / current)Database internals → Store formats;Enterprise 推荐 block(5.23 起 standard / high_limit 弃用路径)。Community 默认 aligned。对照引擎文档随各章钉版本。

适合谁看

在知识栈中的位置

站内内容 本系列关系
行存 / LSM / 文档 postgresql-kernelrocksdbwiredtiger 第 01–02、14–16 篇对照
向量 ANN vector-engine 第 08、16 篇边界
GraphRAG / 应用 db-frontierllm-infra 第 16 篇接口;不重写检索叙事
查询引擎 query-engine 第 09–10 篇计划边界
图数据库内核 本系列 模型 → store → cache → index → expand → 计划 → 选型

一、这个领域最值得关注的 5 个问题

  1. 图查询的代价中心是「点」还是「边的局部性」? → 第 1–4、9 篇。
  2. 一次 hop 在 Neo4j 磁盘格式上走哪些指针?dense 节点改写什么? → 第 3–6 篇。
  3. 索引解决什么、解决不了什么?(标签过滤 vs 深度遍历) → 第 7–8 篇。
  4. Cypher 计划如何被存储与基数估计坑到? → 第 9–11 篇。
  5. 何时必须上原生图引擎,何时 Postgres + 递归 CTE / 外置图层够用? → 第 14–16 篇。

二、篇目依赖关系与推荐阅读路径

flowchart TD
  A["01 Overview"] --> B["02 Adjacency cost"]
  B --> C["03 Record layout"]
  C --> D["04 Block format"]
  D --> E["05 Page cache"]
  E --> F["06 Write path"]
  C --> G["07 Labels indexes"]
  G --> H["08 Fulltext vector boundary"]
  E --> I["09 Expand traversal"]
  I --> J["10 Cypher plan"]
  J --> K["11 Txn locks"]
  K --> L["12 HA boundary"]
  A --> M["13 TinkerPop JanusGraph"]
  M --> N["14 TigerGraph compare"]
  I --> O["15 Ops troubleshoot"]
  N --> P["16 Selection GraphRAG"]
  O --> P
路径 篇目 适合
必读核心 1 → 2 → 3 → 4 → 5 → 9 → 16 快速建立坐标系
存储深挖 3 → 4 → 5 → 6 → 15 页、指针、dense、写入
查询与计划 7 → 9 → 10 → 15 Cypher / 慢查询读者
对照选型 1 → 13 → 14 → 16 多引擎 / GraphRAG
完整通读 1 → … → 16 系统掌握

三、目录与每篇价值点

第一部分:模型与存储(01–06)

  1. 图引擎全景
    • 属性图生态位;相对站内系列的缺口;五条坐标系与 16 篇路线。
  2. 邻接的代价模型
    • 边表 JOIN、CSR、原生指针链、block 内联;统一 hop / \(k\) 跳代价语言。
  3. Neo4j record 系布局
    • 15/34/41/25 B 定长记录;sparse 链与 dense relationship group。
  4. Block format
    • block.x1.db 128 B、动态 xd / big_values、dense B+ 树与实体上限。
  5. Page cache 与指针追逐
    • 8192 B 页、pagecache.size、hit_ratio;record/block 如何改写 fault 形态。
  6. 写入路径
    • 建边挂链、升 dense、逻辑删除与 .id 复用;写如何反咬读局部性。

第二部分:索引、查询与事务(07–12)

  1. 标签 / 类型 / 属性索引与约束
    • LOOKUP / RANGE / TEXT / POINT;唯一与 KEY 约束;索引起点 vs 遍历。
  2. 全文与向量属性边界
    • FULLTEXT / VECTOR(Lucene)相对 RANGE;OS 缓存与混合检索边界。
  3. 遍历与 Expand
    • Expand(All/Into)、VarLengthExpand/Pruning、最短路径双向 BFS。
  4. Cypher 计划入口
    • EXPLAIN/PROFILE、Estimated vs Rows、基数乘积与计划事故。
  5. 事务、锁与隔离
    • read-committed、sparse/dense 建边锁、死锁与 MERGE 陷阱。
  6. 高可用与只读副本边界
    • primary/secondary、Raft 写多数、bookmark 因果链与 secondary 滞后。

第三部分:对照、生产与收束(13–16)

  1. TinkerPop / JanusGraph
    • structure/process、宽行邻接表双写、非必然 ACID、vertex-centric 索引。
  2. TigerGraph 与其它引擎对照句(待写)
    • 对照选型句,不做延迟排名。
  3. 生产排障(待写)
    • 超节点、爆炸路径、内存、慢查询清单。
  4. 选型与 GraphRAG 接口(待写)
    • 何时原生图;与 llm-infra / db-frontier 互链。

四、先修与延伸

先修:会写基本 Cypher 或 SQL JOIN;可选 向量引擎全景

延伸

五、来源与实验约定

规划细节、逐章大纲与研究台账见 PLAN.md

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。


By .