把整个系列沉淀成一张知识地图
目 录
[5.1 框架一:为什么图库多跳查询快](#5.1 框架一:为什么图库多跳查询快)
[5.2 框架二:图库 vs 关系库怎么选](#5.2 框架二:图库 vs 关系库怎么选)
一、导读
作为图数据库系列收官篇,本讲把前七讲沉淀为一张「面试知识地图」:按基础、架构、场景三类整理高频面试题与答题要点,提供两套可套用的答题框架,最后给出系列全景总结。
二、高频面试题(基础类)
|------------|----------------------------------------|
| 问题 | 答题要点 |
| 什么是图数据库 | 以节点、关系、属性为模型,面向关系分析,代表 Neo4j |
| 什么是属性图模型 | 节点 / 关系 / 属性 / 标签四大要素,关系为一等公民 |
| 什么是无索引邻接 | 节点记录直存邻居指针,单跳遍历 O(1) |
| 图库与关系库有何不同 | 图库沿关系遍历,关系库靠 JOIN,多跳差距指数级 |
| Cypher 是什么 | 声明式图查询语言,MATCH 描述模式、WHERE 过滤、RETURN 返回 |
三、高频面试题(架构类)
|------------|------------------------------------------------------------|
| 问题 | 答题要点 |
| 原生图存储怎么工作 | nodestore / relationshipstore / propertystore 三类记录 + 邻接表指针 |
| 因果集群如何高可用 | Core + Raft 领导者选举、多数派提交写事务 |
| 为什么写入是垂直扩展 | 因果集群仅 Leader 可写,读才水平扩展 |
| 如何保证一致性 | ACID 事务 + 因果一致性(事务书签) |
| 索引与约束 | RANGE / POINT / TEXT / 向量索引,唯一约束自带索引 |
| 只读副本做什么 | 异步拉取事务日志重放,扩展读吞吐 |
四、高频面试题(场景类)
|-------------------|--------------------------------------------------|
| 问题 | 答题要点 |
| 社交 / 风控 / 知识图谱选什么 | 图库:多跳遍历、路径、图算法(Neo4j / NebulaGraph / TigerGraph) |
| 查询慢怎么办 | 具体起点避免全库扫描 + 索引 + EXPLAIN / PROFILE 审视计划 |
| 路径爆炸 / 笛卡尔积怎么解 | 限制关系类型 + DISTINCT + LIMIT + WITH 分段收敛 |
| 超级节点 / 写热点怎么办 | 拆分超级节点、控制关系规模、图分区隔离 |
| 与关系库如何分工 | 关系库做事务源,图库做深度关联分析底座,互补融合 |
五、答题框架示范
5.1 框架一:为什么图库多跳查询快
分四层递进回答:存储(原生图引擎,关系为一等公民)→ 遍历(无索引邻接,沿指针 O(1) 跳转)→ 复杂度(多跳近似线性,关系库 JOIN 指数恶化)→ 落地(如三度关联查询从关系库秒级降到毫秒级)。体现「以关系为本」的存储设计哲学。
5.2 框架二:图库 vs 关系库怎么选
先点明边界:多跳关系、路径、群体分析适合图库;强事务与报表适合关系库。再给取舍:查询目标是路径而非单行 → 图库;需要 ACID 复杂事务 → 关系库。最后强调融合:关系库作数据源,图库作关系分析底座,而非替代。
六、图数据库系列全景总结
从认知入门到面试收官,本系列形成完整闭环,可凝练成一条知识链:
- 认知:属性图模型、原生图存储、关系分析定位。
- 架构:原生图存储、Cypher 执行、因果集群三层设计。
- 原理:无索引邻接、模式匹配、图算法。
- 部署:内网落地 Neo4j 因果集群,含一键脚本。
- 选型:与 NebulaGraph / TigerGraph / 关系库横评。
- 避坑:建模、路径爆炸、内存陷阱。
- 调优:内存 / 查询 / 导入、监控体系。
- 面试:高频题与答题框架。