CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Specialty 数据库入门/课时/文档库扩展
RawBlame
课时目录12 节

Specialty 数据库入门

  1. 01数据库选型地图
  2. 02图数据库
  3. 03宽列存储
  4. 04文档库扩展
  5. 05列式 OLAP
  6. 06Solr 与搜索
  7. 07Firebase BaaS
  8. 08Oracle 企业库
  9. 09一致性与 CAP
  10. 10何时选哪种库
  11. 11运维与备份
  12. 12综合练习

文档库扩展

CouchDB、RethinkDB;对照 MongoDB。

30 分钟

文档库扩展

MongoDB 是文档 NoSQL 的默认答案,但 CouchDB、RethinkDB 等在同步模型、实时推送上有独特设计。本课不是重复 mongo-intro,而是 拓宽文档库视野,避免「只有 Mongo 一种文档库」。

学习目标

  • 对照 MongoDB 理解 CouchDB 的 MVCC 与离线同步
  • 了解 RethinkDB 实时 changefeed 的历史定位
  • 说清何时仍选 MongoDB、何时看 CouchDB / 托管 dynamodb-essentials

文档库共性

特性说明
Schema 灵活嵌套 JSON/BSON,字段可演进
水平扩展分片(MongoDB sharding、CouchDB 集群)
弱 JOIN嵌入或应用层组装,见 orm-normalization 反范式讨论
// 文档嵌套示例(MongoDB / CouchDB 均常见)
{
  "_id": "order-1001",
  "items": [{ "sku": "A", "qty": 2 }],
  "shipping": { "city": "Shanghai" }
}

关系库需拆 order、order_item、address;文档库 读一次拿全量 是主要收益。

CouchDB:离线优先

  • 多主复制 + MVCC:冲突用 revision 链解决,适合 移动端离线编辑、后续同步
  • HTTP REST 原生:与 Couchbase 生态衔接(Couchbase = CouchDB 演进 + 内存层)
  • MapReduce 视图:二级索引方式与 MongoDB 聚合管道不同

适合:字段 App、边缘同步;不适合:复杂事务报表 → 仍走 postgresql-essentials。

RethinkDB:实时 changefeed

  • 查询结果 订阅式推送(changefeed),曾对标实时仪表板
  • 项目曾停更后社区重启;新项目需评估维护风险
  • 实时场景 today 常见替代:MongoDB Change Streams、elasticsearch-essentials + Kafka

选型速查

需求倾向
生态、聚合、Spring DataMongoDB(本栈 mongo-spring)
离线同步、冲突合并CouchDB / Couchbase
AWS 全托管、按量DynamoDB
权威事务 + JSON 列PostgreSQL JSONB

练习

  • 对比 cf_lesson 若存 MongoDB 文档 vs MySQL 行,各写 2 个优缺点
  • 查 CouchDB _rev 冲突解决文档摘要
  • 列出一种「必须关系库」的业务场景及理由
  • 小结

    文档库族内 Mongo 主流,CouchDB 补同步、RethinkDB 补实时历史——按访问模式选。 下一课列式 OLAP:分析查询的另一套引擎。

    加载本节练习…
    ← 上一课宽列存储下一课 →列式 OLAP