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综合练习

宽列存储

Cassandra、ScyllaDB;高写入扩展。

35 分钟

宽列存储

Twitter 时间线、IoT 传感器、审计日志——写入 QPS 极高、按分区键顺序读 时,Cassandra、ScyllaDB 等 宽列(Wide Column) 库往往比传统行存更顺手。它们牺牲灵活 JOIN,换取 线性扩展写入 与 多数据中心复制。

学习目标

  • 理解宽列模型:Keyspace → Table → Partition Key + Clustering Key
  • 对比 Cassandra 与 ScyllaDB 的定位
  • 与 dynamodb-essentials、mongodb-essentials 的分工

宽列模型要点

Partition Key → 决定数据落在哪个节点(不可跨分区事务)
Clustering Key → 分区内排序(时间线、范围扫描)
Column → 行内可变列族(稀疏宽表)
-- CQL 示例:按 user_id 分区,ts 排序的事件
CREATE TABLE events (
  user_id uuid,
  ts timestamp,
  event_type text,
  payload text,
  PRIMARY KEY (user_id, ts)
) WITH CLUSTERING ORDER BY (ts DESC);

查询必须带 Partition Key——设计表前先写访问模式,与 DynamoDB 的 PK/SK 思维类似(见 ddb-keys)。

Cassandra vs ScyllaDB

Apache CassandraScyllaDB
实现JVMC++,兼容 CQL
生态最成熟,文档多性能导向,Drop-in 替换
运维需理解一致性级别、repair同样需 CAP 取舍

一致性级别(ONE / QUORUM / ALL)直接对应 scale-cap 的可用性与一致性 trade-off。

与 MongoDB、DynamoDB 对照

场景更常见选型
文档灵活、二级索引多mongodb-essentials
AWS 托管、按请求计费dynamodb-essentials
自建多 DC、超高写入时间序列Cassandra / ScyllaDB
强事务、复杂 JOINpostgresql-essentials

练习

  • 为「设备 ID + 时间戳」时序数据写出 Partition Key 与 Clustering Key
  • 说明为何宽列库不适合「任意字段 ad-hoc 查询」
  • 阅读 scale-replication 一节,对照 Cassandra 多 DC
  • 小结

    宽列 = 按访问模式建模 + 分区扩展写入;JOIN 不是强项。 下一课文档库扩展:MongoDB 之外的文档选型。

    加载本节练习…
    ← 上一课图数据库下一课 →文档库扩展