# 1. ScyllaDB 的 Seastar 无锁异步框架与性能 A 所有分片共享同一份内存以提高缓存利用率 B Seastar 使用多线程加锁模型提升并发 C Seastar 依赖 JVM 的 GC 来管理内存 D 每个 CPU 核独立运行一个分片,分片间几乎不共享状态从而避免锁竞争 ✓ 正确答案
# 2. 宽表的二级索引与物化视图代价 A 物化视图会带来存储放大和一致性维护成本 ✓ 正确答案 B 二级索引不增加任何写入开销 C 宽表数据库天然擅长任意条件的辅助查询 D 物化视图与主表数据完全共享同一份存储
# 3. 多模索引(标量/全文/向量/图)的统一管理 A 所有索引必须使用同一种数据结构 B 禁止使用向量索引 C 通过统一抽象管理多种异构索引并支持跨模型查询协同 ✓ 正确答案 D 统一索引只能用于标量查询
# 4. Cassandra 的 LSM 架构与最终一致性(Tunable Consistency) A 写入直接修改已存在的 SSTable B Cassandra 默认是强一致、无最终一致性的 C 当 R+W>N 时,读请求能读到最新已写入的值 ✓ 正确答案 D LSM 架构对读放大没有影响
# 5. Cassandra 的分区键选择与热点规避 A 使用单调递增的单值作为分区键 B 对分区键加盐或哈希以打散数据分布 ✓ 正确答案 C 把所有数据放入同一个分区提升性能 D 关闭复制功能减少数据量
# 6. HBase 的 RowKey 设计原则,为什么单调递增 RowKey 会产生写热点?反转、加盐、哈希与组合键方案各自的取舍? A 单调递增 RowKey 使写入均匀分布到所有 Region B 加盐方案分布均匀但会牺牲有序范围扫描 ✓ 正确答案 C 反转方案完全保留有序范围查询 D 哈希方案保留字典序便于范围扫描
# 7. HBase 的预分区与 Region 分裂,如何按 RowKey 区间预建 Region 避免写入热点与频繁分裂? A 预分区会让数据集中到单个 Region 造成热点 B 预分区与 RowKey 设计无关 C 预分区后 Region 永远不会再分裂 D 预分区在启动时按 RowKey 区间预建 Region,避免写热点与频繁分裂 ✓ 正确答案
# 8. ScyllaDB 与 Cassandra 的协议兼容 A ScyllaDB 兼容 Cassandra 的 CQL 协议与官方驱动 ✓ 正确答案 B 两者底层存储引擎完全相同 C 两者都是 JVM 实现 D ScyllaDB 不支持一致性级别
# 10. 多模与单一专用库的取舍(性能 vs 运维) A 多模数据库在任意场景下性能都优于专用库 B 专用库无需维护多套系统 C 多模数据库无法处理跨模型查询 D 多模数据库简化运维,但可能牺牲部分极端性能,需按业务权衡 ✓ 正确答案
# 11. 文档库(MongoDB)与宽表(Cassandra)的读写模型对比 A 两者都支持就地更新字段 B 两者都使用相同的数据模型 C Cassandra 的复杂聚合查询能力远强于 MongoDB D MongoDB 支持丰富查询与文档更新,Cassandra 以主键查询为主、写为追加式 ✓ 正确答案
# 12. 文档库的敏捷 schema 在多模下的权衡 A 放弃所有灵活性以换取性能 B 多模数据库禁止使用文档模型 C 敏捷 schema 不会带来任何查询问题 D 灵活性与跨模型数据一致性、数据质量约束之间的平衡 ✓ 正确答案
# 13. Cassandra/ScyllaDB 的戒指(Ring)拓扑与一致性哈希 A 每个物理节点固定只有一个 token 区间 B 数据按分区键哈希落到环上对应 token 区间,按复制因子顺时针取副本,用虚拟节点实现均衡 ✓ 正确答案 C 节点增减时所有数据都需要重新哈希 D 副本位置与复制因子无关
# 14. 宽表模型的行键/聚类列与数据局部性 A 聚类列决定同一分区内数据的物理排序与相邻性,影响查询局部性 ✓ 正确答案 B 聚类列决定数据所在节点 C 聚类列与数据局部性无关 D 聚类列只影响写入不影响读取
# 17. 统一查询语言(SQL 扩展)跨模检索 A 只能检索单一模型 B 跨模检索无需执行引擎协同 C SQL 扩展无法处理向量相似度 D 通过 SQL 扩展支持 JSON、图、向量等跨模型查询,由优化器分派执行 ✓ 正确答案
# 19. 多模数据库(关系+文档+图)的事务边界与一致性如何界定,跨模型操作的限制有哪些? A 所有多模数据库都支持跨模型强一致事务 B 图数据无法参与任何事务 C 事务边界由底层引擎决定,跨模型强一致事务取决于架构,常有限制 ✓ 正确答案 D 文档模型天然支持跨模型强一致
# 22. 宽表的追加写(LSM)与文档的就地更新 A LSM 就地更新字段 B LSM 追加写换取高吞吐但牺牲读放大,文档就地更新读路径高效但写路径易竞争 ✓ 正确答案 C 两者在读写代价上完全相同 D 文档库也依赖 tombstone 实现删除
# 24. 宽表库(如 HBase/时序)的反范式与宽行设计原则,热点行与列族如何设计? A 用反范式宽行提高数据密度,并按访问频率/大小划分列族以隔离存储 ✓ 正确答案 B 应避免冗余,尽量减少列 C 列族越多越好 D 热点行无法通过分键规避
# 25. HBase 的架构组件,HMaster、RegionServer、WAL、MemStore、HFile 的职责与读写路径(写 WAL→MemStore→Flush,读走 BlockCache+Bloom Filter)? A 写路径为 WAL→MemStore→Flush 成 HFile,读路径利用 BlockCache 与 Bloom Filter 加速 ✓ 正确答案 B 写入直接写 HFile 不经过 WAL C 读取不经过 BlockCache D HMaster 负责实际读写数据
# 26. HBase 的列族设计要点,列族数量、列限定符、VERSIONS 与 TTL 对存储放大与查询性能的影响? A VERSIONS 越多存储放大越明显,TTL 可控制数据过期 ✓ 正确答案 B 列族越多性能越好 C 列限定符越冗余越好 D TTL 与存储放大无关
# 27. HBase 缺少二级索引的问题,多条件查询如何用 Phoenix、组合 RowKey 或自建索引解决? A 增加列族数量即可解决 B 只能全表扫描 C 建立索引表映射、用 Phoenix 二级索引或组合 RowKey ✓ 正确答案 D 关闭写放大
# 28. HBase 与 Cassandra 在数据模型、一致性模型与运维复杂度上的差异?选型依据是什么? A 两者都依赖 HDFS 存储 B HBase 无中心节点 C 两者一致性模型完全相同 D Cassandra 默认最终一致、运维相对简单,HBase 依赖 Hadoop 生态、一致性较强 ✓ 正确答案
# 29. 宽表库的 TTL 与数据过期 A 数据一旦过期立即物理删除 B TTL 不会影响 Compaction 压力 C 过期数据先逻辑屏蔽,由后台 Compaction 物理清除,需注意删除风暴 ✓ 正确答案 D tombstone 不影响读性能
# 30. 多模统一查询的一致性语义差异 A 跨模型操作天然保证强一致 B 所有模型默认强一致 C 各模型一致性语义存在差异,跨模型强一致常依赖引擎能力,需明确边界 ✓ 正确答案 D 键值模型默认强一致
# 32. 多模数据库的集群扩缩容与再平衡 A 通过分片迁移与协调器调度实现,需控制迁移速率保证服务可用 ✓ 正确答案 B 扩容时所有数据立即复制到新节点且无迁移开销 C 再平衡与元数据调度无关 D 缩容不会产生数据迁移
# 33. HBase 的 Compaction(Minor/Major)与 Region 均衡、RegionServer 故障恢复(HLog 回放)机制? A Major Compaction 只合并少量文件 B Region 均衡由 HMaster 调度,故障恢复靠 HLog 回放保证数据不丢 ✓ 正确答案 C Minor Compaction 会清理所有删除数据 D HLog 只用于日志不用于恢复
# 35. 多模数据库各模型(KV/文档/图)的监控指标差异,统一监控的取舍如何权衡? A 所有模型用完全相同的监控指标 B 保留通用资源指标作为基线,同时提供各模型专属指标,兼顾统一与细化 ✓ 正确答案 C 模型专属指标无意义 D 无需监控图算法耗时
# 36. 多模数据库的读写延迟目标如何按模型/场景设定,SLO 的差异化如何设计? A 所有模型统一采用相同延迟目标 B 延迟目标无需结合压测基线 C 按模型与场景差异化设定延迟目标,关键路径更严格、批处理放宽 ✓ 正确答案 D 分析场景要求毫秒级低延迟
# 37. 多模数据库与专用数据库混合架构的划分边界,数据同步与一致性如何保证? A 当模型性能/功能需求超出多模能力时,用专用库,并通过 CDC 同步大数据、按最终一致设计 ✓ 正确答案 B 将数据完全同步到专用库后无需再考虑一致性 C 混合架构无需数据同步 D 跨系统可以轻易保证强一致