返回顶部
C

CassandraCassandra表设计

Design Cassandra tables, write efficient queries, and avoid distributed database pitfalls.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
896
下载量
免费
免费
2
收藏
概述
安装方式
版本历史

Cassandra

数据建模误区

  • - 围绕查询而非实体设计表——反规范化是强制要求,而非可选
  • 每个查询模式对应一张表——Cassandra没有JOIN操作;数据需跨表重复
  • 分区键决定数据分布——相同分区键的所有行位于同一节点
  • 宽分区会扼杀性能——保持分区小于100MB;若分区持续增长,需在分区键中添加时间分桶

主键陷阱

  • - PRIMARY KEY (a, b, c):a是分区键,b和c是聚簇列
  • PRIMARY KEY ((a, b), c):(a, b)共同构成分区键——复合分区键
  • 聚簇列定义分区内的排序顺序——查询必须遵循此顺序
  • 不指定分区键无法按聚簇列查询——与SQL索引不同

查询限制

  • - WHERE子句必须包含完整分区键——除非使用ALLOW FILTERING,否则部分分区键会失败
  • ALLOW FILTERING会扫描所有节点——生产环境切勿使用;应重新设计表结构
  • 范围查询仅适用于最后一个聚簇列——WHERE a = ? AND b > ?可行,WHERE a = ? AND c > ?不可行
  • 对分区键使用IN会命中多个节点——开销大;优先使用单分区查询

一致性级别

  • - 大多数操作使用QUORUM——多数副本;平衡一致性与可用性
  • 多数据中心使用LOCAL_QUORUM——避免跨数据中心延迟
  • ONE用于纯可用性场景——可能读取过期数据;适合缓存,不适合关键读取
  • 强一致性要求写入与读取的一致性级别重叠——QUORUM + QUORUM安全可靠

墓碑(隐形性能杀手)

  • - DELETE操作创建墓碑而非实际删除——墓碑会持续存在直到压缩
  • 批量删除会破坏读取性能——每次查询需扫描数千个墓碑
  • TTL也会创建墓碑——高写入量时避免使用短TTL
  • 使用nodetool cfstats -H table检查——Tombstone列显示问题

批量操作误用

  • - UNLOGGED BATCH不会更快——仅用于对同一分区的原子写入
  • LOGGED BATCH用于跨分区原子性——会增加协调开销
  • 不要批量处理不相关的写入——会拖累协调节点;应分别发送异步写入
  • 批量大小限制约50KB——更大的批量会失败或超时

反模式

  • - 对高基数列使用二级索引——散列收集查询,速度慢
  • 对频繁更新的列使用二级索引——会产生墓碑
  • SELECT *——始终列出具体列;模式变更会破坏查询
  • 使用不含时间分量的UUID作为分区键——随机分布,批量加载时产生热点

轻量级事务

  • - IF NOT EXISTS / IF column = ?——使用Paxos协议,比普通写入慢4倍
  • 轻量级事务的序列一致性——SERIAL或LOCAL_SERIAL
  • 不要用于计数器或高频更新——争用会扼杀吞吐量
  • 返回[applied]布尔值——必须检查操作是否成功

集合与计数器

  • - 集合/列表/映射与行一起存储——不能超过64KB,不支持分页
  • 列表前置插入是反模式——会产生墓碑;使用追加或集合
  • 计数器需要专用表——不能与常规列混用
  • 计数器递增不是幂等的——重试可能导致重复计数

压缩策略

  • - SizeTieredCompactionStrategy(默认)——适合写入密集型,占用更多磁盘空间
  • LeveledCompactionStrategy——读取延迟更低,写入放大更高
  • TimeWindowCompactionStrategy——适用于带TTL的时间序列数据;减少墓碑开销
  • 策略与工作负载不匹配会导致性能随时间下降

运维操作

  • - 定期执行nodetool repair——不修复会导致不一致累积
  • nodetool status显示集群健康状态——UN(正常运行)为正常,DN为宕机
  • 模式变更最终会传播——等待nodetool describecluster显示一致后再操作
  • 滚动重启:一次重启一个节点,等待状态变为UN后再进行下一个

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 cassandra-1776419963 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 cassandra-1776419963 技能

通过命令行安装

skillhub install cassandra-1776419963

下载

⬇ 下载 Cassandra v1.0.0(免费)

文件大小: 2.55 KB | 发布时间: 2026-4-17 19:33

v1.0.0 最新 2026-4-17 19:33
Initial release

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部