Neo4j
你可能会说
好友的好友、推荐路径,SQL 写不出来怎么办?
把关系当一等公民的图数据库节点和边直接存,多跳查询用遍历而不是 JOIN,路径、推荐、风控更自然;图很大时要小心超级节点。
也常被叫作图数据库Cypher
什么时候选它
- 社交关系、知识图谱、反欺诈路径
- 查询深度不固定(几跳说不准)
- 关系本身带属性,需要一起查
什么时候别选
- 常规 CRUD 和报表(关系库更通用)
- 超大图的批量统计(图计算引擎更合适)
- 团队没有图建模经验
容易混在一起 · 怎么分
Neo4j≠PostgreSQL
Neo4j 擅长多跳关系遍历;PostgreSQL 通用,浅层关系用递归 CTE 也能做,但深度查询会退化。
Q面试会问什么
- 问:和关系库 JOIN 的区别?
答:图库用免索引邻接,边直接指向节点,多跳遍历不随全表增长;但超级节点会让遍历变慢。 - 问:Cypher 是什么?
答:声明式图查询语言,用 MATCH / WHERE / RETURN 描述模式和路径。
延伸阅读 · 权威出处