# 1. TiDB 计算层无状态,可水平扩展;TiKV 基于 Raft 协议实现副本一致性 A TiDB Server 是有状态存储层,负责数据落盘 B TiFlash 与 TiKV 使用同一套行存引擎 C TiKV 基于 Raft 协议,只有 Leader 副本可读写,写入需多数派确认 ✓ 正确答案 D PD 负责实际执行 SQL 聚合
# 2. CockroachDB 基于 Raft + Multi-Region 副本策略,承诺全球一致 A 写入只需本地副本确认即可返回 B 副本之间不通过 Raft 复制 C CockroachDB 不支持多区域部署 D 通过 Raft 多数派提交保证强一致,跨区写入延迟较高 ✓ 正确答案
# 3. CockroachDB 采用 PostgreSQL 协议,提供较好的 SQL 兼容性 A 只能使用 CockroachDB 专用客户端 B 与 MySQL 完全兼容 C 可直接复用 PG 驱动、ORM 与 psql 工具 ✓ 正确答案 D 不支持 SQL 标准
# 4. TiFlash 通过 Raft learner 同步数据,提供近实时列存视图 A learner 只同步日志不参与投票,列存近实时同步 TiKV 数据 ✓ 正确答案 B learner 参与投票并影响一致性子集 C TiFlash 与 TiKV 数据完全独立不同步 D TiFlash 只能存历史数据,无法实时
# 5. OceanBase 通过 Paxos 协议实现副本一致性,每副本独立 redo log A 只有 Leader 保存日志,follower 不落盘 B OceanBase 使用异步复制,无强一致 C 每副本独立 redo log,通过 Paxos 多数派确认后提交 ✓ 正确答案 D 副本共享同一份 redo log
# 6. OceanBase 在 3.x 引入基于 LSM-Tree 的存储引擎 A 写入采用随机写,未做合并 B 不支持压缩 C 写入先入 memtable,定期刷成 SSTable 并后台 compaction 合并 ✓ 正确答案 D 与 B+ 树完全一致,无写放大
# 7. OceanBase 兼容 MySQL 5.7/8.0 协议,迁移工具 OMS A OceanBase 仅兼容 Oracle,不兼容 MySQL B OMS 仅支持全量迁移,不支持增量同步 C 迁移必须停机 D OMS 支持全量+增量在线迁移,且 OceanBase 兼容 MySQL 协议 ✓ 正确答案
# 8. PolarDB MySQL 8.0 兼容 InnoDB 表结构与 Redo A 兼容 InnoDB 表结构与 Redo,支持多计算节点共享存储 ✓ 正确答案 B 存储引擎与 InnoDB 完全无关 C 无法复用 MySQL 工具链 D 不支持 binlog
# 9. PolarDB-X 分布式版基于 GMS/XPaxos 实现多副本一致性 A XPaxos 提供多副本一致,GMS 管理全局元数据一致 ✓ 正确答案 B GMS 负责数据副本复制 C 数据副本不复制,单副本 D 一致性交给外部系统
# 10. TiDB 的 TiKV(Raft 分片)与 TiFlash(列存)如何支撑 HTAP,写放大如何控制? A TiFlash 与 TiKV 不共享数据 B 查询永远走 TiKV,不使用 TiFlash C TiKV 行存支撑 OLTP,TiFlash 列存支撑 OLAP,通过 Raft learner 同步,写放大靠 compaction 调优控制 ✓ 正确答案 D TiDB 不关心写放大
# 11. PolarDB 兼容 PostgreSQL 14/15 Oracle 兼容模式 A 仅支持 MySQL,不支持 PG/Oracle B 支持 PostgreSQL 14/15,并提供 Oracle 兼容模式 ✓ 正确答案 C 不支持任何现有 SQL 方言 D Oracle 兼容模式可完全替代 Oracle 原生特性
# 12. YugabyteDB 基于 DocDB + Raft 实现分布式强一致 A 使用异步复制,无强一致 B DocDB 是单机存储 C DocDB 按主键分片为 tablet,通过 Raft 多数派提交实现强一致 ✓ 正确答案 D 不支持 SQL
# 13. YugabyteDB 同时支持 PostgreSQL 兼容 YSQL 与 Cassandra 兼容 YCQL API A 仅支持 YCQL,不支持 SQL B 两者都不支持事务 C YSQL 与 YCQL 使用完全独立的存储 D YSQL 兼容 PostgreSQL,YCQL 兼容 Cassandra,共享 DocDB 存储 ✓ 正确答案
# 14. YugabyteDB 在 2.14+ 支持 xCluster 异步复制 A 是跨集群异步复制,用于灾备与异地多活 ✓ 正确答案 B 是集群内强一致复制 C 与 Raft 强一致完全相同 D 只能复制单表不可选
# 15. Citus 是 PostgreSQL 扩展,将大表分布到多个 worker 节点 A Citus 是独立数据库,非 PG 扩展 B 所有数据保存在 coordinator 单节点 C Citus 将大表按分布列哈希分片到 worker,查询尽量下推 ✓ 正确答案 D 不支持参考表
# 16. TiDB 通过 TiKV(行存)与 TiFlash(列存)实现 HTAP,查询自动选择引擎 A 查询必须手动指定引擎,无自动选择 B 行存与列存数据不一致 C TiFlash 只存历史数据 D 优化器根据统计信息与代价自动选择 TiKV 或 TiFlash ✓ 正确答案
# 17. TiDB Placement Rules 允许按机房、磁盘类型放置副本 A 所有副本必须放在同一节点 B 只影响缓存不影响存储 C 可按节点标签(机房/磁盘类型)约束副本放置,由 PD 调度 ✓ 正确答案 D 无法实现冷热分离
# 18. CockroachDB 在 19.1+ 支持 Follower Reads 与 Stale Reads 降低延迟 A 它们保证读取最新数据 B 与多区域无关 C 只提升写入性能 D 它们从 follower 读取有界陈旧数据以降低跨区域读延迟 ✓ 正确答案
# 19. CockroachDB 通过 Gateway Node 路由请求,支持 geo-partitioning A Gateway Node 路由请求到持有 lease 的节点,geo-partitioning 让数据就近放置 ✓ 正确答案 B Gateway Node 只负责读,不路由写 C geo-partitioning 不支持分区 D 数据不能在区域间分布
# 20. TiDB 在 v7+ 引入全局内存表与 TiProxy 负载均衡 A TiProxy 负责连接管理与负载均衡,全局内存表提供跨节点一致状态 ✓ 正确答案 B 全局内存表用于存本节点私有状态 C TiProxy 是存储引擎 D 全局内存表与多节点无关
# 21. CockroachDB 在 row-level TTL 与 Change Data Capture(CDC)投入生产 A TTL 用于实时捕获变更 B CDC 只支持静态数据 C row-level TTL 自动清理过期行,CDC 通过 rangefeed 捕获变更到下游 ✓ 正确答案 D 两者都不支持生产
# 22. OceanBase 4.x(OB Cloud)支持单机分布式一体化部署 A 只能分布式部署,无法单机 B 不支持云服务 C 单机与分布式是两套完全不兼容的代码 D 支持单机与分布式一体化,可从单机平滑扩展为多副本集群 ✓ 正确答案
# 23. OceanBase 通过 OBProxy 智能路由读写 A 解析 SQL 按分区路由到持有副本的节点,支持读写分离与负载均衡 ✓ 正确答案 B 只转发写请求 C 不参与任何路由 D 是存储引擎
# 24. PolarDB 通过计算与存储分离架构实现读写分离,写入 RW、读扩展到 RO 节点 A 每个 RO 节点独立复制一份完整数据 B 不支持只读节点 C 所有请求都走 RW 节点 D RW 节点写、RO 节点读,共享同一份存储,实现读扩展 ✓ 正确答案
# 25. PolarDB 使用 PolarFS 共享存储,单一数据副本多节点挂载 A PolarFS 提供共享存储,多计算节点挂载同一份数据,实现计算扩展 ✓ 正确答案 B 每个计算节点独立保存一份数据副本 C 数据不共享,无法一写多读 D 只支持单节点
# 26. OceanBase 的 LSM-Tree 与 Paxos 多副本的架构特点,与 TiDB 的差异? A 两者都用 Raft 一致性协议 B 两者都无多副本 C OB 用 Paxos + LSM-Tree,TiDB 用 Raft 分片 + 行/列存双引擎 ✓ 正确答案 D OB 不支持 LSM
# 27. PolarDB 的共享存储架构如何实现计算节点扩展而数据不迁移? A 每次加节点都要全量复制数据 B 加 RO 节点只需挂载共享存储,无需迁移数据 ✓ 正确答案 C 数据必须按节点拆分 D 不支持水平扩展
# 28. YugabyteDB 通过 Tablet 分片实现水平扩展 A 数据不分片,单节点存储 B 表按主键范围/哈希拆分为 tablet,分布在节点实现水平扩展 ✓ 正确答案 C tablet 不支持多副本 D 扩展依赖手动迁移
# 29. YugabyteDB 的 TServer 与 Master 角色分离部署 A TServer 负责元数据,Master 负责数据 B 只有 Master 一种角色 C 两者角色完全相同 D TServer 负责数据存储与查询,Master 负责元数据与调度 ✓ 正确答案
# 30. Citus 通过 reference table 与 distributed table 区分关联表与小表 A reference table 分片到少数节点 B reference table 用于大表 C 两者处理方式相同 D distributed table 哈希分片,reference table 在每个 worker 复制一份 ✓ 正确答案
# 31. Citus 在 v10+ 支持 MX 模式,coordinator 与 worker 互不冲突 A 只有单一 coordinator 能处理查询 B MX 模式让节点既当 coordinator 又当 worker,多节点可路由查询 ✓ 正确答案 C MX 模式不支持多节点 D coordinator 与 worker 必然冲突
# 32. Citus 通过 colocate_with 控制关联表共分布 A 让关联表分片布局不同 B 只影响小表 C 让关联表共分布,join 在本地完成,避免跨节点 shuffle ✓ 正确答案 D 与 join 无关
# 33. Citus 适合 HTAP 场景,分析查询通过并行 worker 提速 A 分析查询下推到多 worker 并行执行,结合 PG 事务能力支持 HTAP ✓ 正确答案 B 分析查询只能在单 worker 串行执行 C Citus 不支持 SQL D 分析查询必须停库
# 34. 分布式数据库的分区键设计如何影响跨分片事务比例,最佳实践是什么? A 分区键应选择低基数、热点分布的列 B 应选分布均匀、与业务访问维度匹配的列,让相关数据共分片减少跨分片事务 ✓ 正确答案 C 分区键不影响跨分片事务比例 D 分区键越倾斜越好