数据库选型地图
SQL/NoSQL/NewSQL 全景;与 orm/mongo 分工。
30 分钟
数据库选型地图
MySQL、MongoDB、Redis 能覆盖大部分业务,但 图遍历、海量写入、OLAP 分析、全文检索 各有更合适的引擎。本 track 帮你建立 Specialty 数据库全景图,知道「还有什么可选」,而不是默认一切塞进关系库。
学习目标
- 区分 SQL、NoSQL、NewSQL 与 Specialty 库的大致边界
- 说清本 track 与 mongodb-essentials、postgresql-essentials、orm-essentials 的分工
- 建立「主库 + 专用库」的多存储思维
数据库家族一览
| 家族 | 代表 | 擅长 | 典型短板 |
|---|---|---|---|
| 关系型 SQL | PostgreSQL、MySQL | ACID、JOIN、报表 | 超大规模写入、图遍历 |
| 文档 NoSQL | MongoDB、CouchDB | 灵活 schema、嵌套 | 复杂跨文档事务 |
| 键值 / 缓存 | Redis | 低延迟、TTL | 非主持久化 |
| 宽列 | Cassandra、ScyllaDB | 高写入、多 DC | 灵活查询弱 |
| 图 | Neo4j、DGraph | 关系遍历 | 不适合大表扫描 |
| 搜索 | Elasticsearch、Solr | 全文、聚合 | 非权威事务源 |
| OLAP 列存 | ClickHouse | 分析查询 | 非 OLTP |
| 托管 NoSQL | DynamoDB | Serverless 扩展 | 建模约束强 |
没有银弹:选型 = 数据形状 + 访问模式 + 运维能力 + 成本。
与已有 track 的分工
orm-essentials / postgresql-essentials → 关系建模与主库能力
mongodb-essentials / dynamodb-essentials → 文档与托管 NoSQL
elasticsearch-essentials → 搜索与日志检索
scaling-essentials → CAP、复制、分片(跨库通用)
specialty-databases-essentials → 图、宽列、OLAP、Solr、Firebase、Oracle 等「第二梯队」
CodeRoadMap 仍以 MySQL/PostgreSQL 为权威数据源(cf_track、cf_lesson);Specialty 库教你在 特定场景追加,而非替换主库。
多存储架构示意
┌─ PostgreSQL(事务主库)
Spring Boot API ────┼─ MongoDB(文档/评论)
├─ Elasticsearch(搜索)
├─ Neo4j(社交图谱)
└─ ClickHouse(行为分析)
应用层通过 orm-essentials 的 JPA/MyBatis 访问主库;专用库通常 独立客户端或 CDC 同步,不宜混为一谈。