选择题专练数据库原理精选30题

发布时间:2026/5/28 18:46:19

选择题专练数据库原理精选30题 答案在主页。一、 事务与并发控制 (8题)关于多版本并发控制以下哪种场景下MVCC机制仍可能产生“幻读”问题A. 在READ COMMITTED隔离级别下事务A读取一个范围的数据后事务B在该范围内插入新记录并提交随后事务A再次读取相同范围。B. 在REPEATABLE READ隔离级别下使用快照隔离的实现如InnoDB事务A读取一个范围的数据后事务B在该范围内插入新记录并提交随后事务A再次读取相同范围。C. 在SERIALIZABLE隔离级别下使用基于锁的实现。D. MVCC机制在任何隔离级别下都不会产生幻读。在基于时间戳排序的并发控制协议中事务T1的时间戳为100事务T2的时间戳为200。T1先执行write(X)随后T2执行read(X)。已知X的W-timestamp初始为50。根据基本TO规则会发生什么A. T2的read(X)被允许并将X的R-timestamp更新为200。B. T2的read(X)被回滚因为200 100。C. T2的read(X)被拒绝T2被中止并赋予新时间戳后重启。D. T2的read(X)被延迟直到T1提交或中止。关于两阶段锁协议以下说法正确的是A. 严格两阶段锁要求事务在释放任何一个排他锁之前必须进入收缩阶段。B. 强两阶段锁要求事务在提交或中止前不能释放任何锁。C. 两阶段锁协议可以保证冲突可串行化但无法避免死锁。D. 以上说法都正确。在数据库恢复机制中检查点的作用是A. 确保在检查点时刻所有已提交事务的修改都已持久化到磁盘。B. 作为系统崩溃后重做和撤销操作的起点减少恢复时需要扫描的日志量。C. 强制将所有脏页写回磁盘。D. 标记一个所有活跃事务都已提交的时间点。假设使用WAIT-DIE机制预防死锁。事务T1时间戳10持有锁L事务T2时间戳20请求锁L。根据WAIT-DIE规则会发生什么A. T2等待T1释放锁L。B. T2被中止Die。C. T1被中止Die。D. 这取决于锁L的模式共享或排他。以下哪种隔离级别在标准SQL定义中允许“不可重复读”但禁止“脏读”A. READ UNCOMMITTEDB. READ COMMITTEDC. REPEATABLE READD. SERIALIZABLE在SERIALIZABLE隔离级别下如果一个数据库系统使用“谓词锁”来实现其主要目的是防止什么现象A. 脏写B. 丢失更新C. 幻读D. 不可重复读关于“日志先行”规则以下描述最准确的是A. 事务提交前其所有日志记录必须被写入稳定的日志存储器。B. 在修改数据库页面之前对应的日志记录必须已写入稳定的日志存储器。C. 在事务提交操作被记录到日志之前该事务的所有日志记录必须已写入稳定的日志存储器。D. 以上都是WAL规则的正确表述。二、 查询处理与优化 (7题)对于连接操作 R ⋈ S 已知|R| 10,000|S| 1,000 每个数据页可存放100个R元组或20个S元组。缓冲区有52个页面。使用基于块的嵌套循环连接将S作为外表最少需要多少次磁盘I/O假设连接选择率为1且结果集无需写回A. 1000 ceil(1000/51) * 10000 ≈ 1000 20 * 10000 201,000B. 1000 ceil(10000/51) * 1000 ≈ 1000 196 * 1000 197,000C. 10000 ceil(10000/51) * 1000 ≈ 10000 196 * 1000 206,000D. 1000 ceil(1000/(52-1)) * 10000 ≈ 1000 20 * 10000 201,000给定关系R(A, B, C)和S(C, D, E)以及以下统计信息T(R)10,000V(R, C)500T(S)2,000V(S, C)200。假设C是连接属性且值均匀分布。使用基于直方图等宽的成本估算连接R ⋈ S的中间结果大小约为多少A. (T(R) * T(S)) / max(V(R, C), V(S, C)) (100002000)/500 40,000B. (T(R) * T(S)) / V(R, C) (100002000)/500 40,000C. T(R) * (T(S)/V(S, C)) 10000 * (2000/200) 100,000D. 由于缺乏连接选择率信息无法估算。在基于代价的优化器中通常使用“左侧深度树”而不是“右侧深度树”或“浓密树”来规划连接顺序主要原因不包括以下哪项A. 左侧深度树能更好地利用流水线执行减少中间结果的物化开销。B. 左侧深度树的搜索空间远小于浓密树优化器规划更快。C. 左侧深度树通常能产生比右侧深度树更优的物理计划。D. 所有数据库系统的连接算法都只支持左侧深度树的执行模式。对于查询SELECT * FROM t WHERE a 10 AND a 100 AND b ‘xyz’ 表t在(a, b)上有一个复合索引。优化器决定使用索引范围扫描。最有效的扫描方式是什么A. 在索引中定位到第一个a 10且b’xyz’的条目然后扫描直到a 100。B. 在索引中定位到第一个a 10的条目然后扫描并过滤b’xyz’的条目直到a 100。C. 在索引中定位到b’xyz’的第一个条目然后扫描并过滤a 10 AND a 100的条目。D. 这取决于索引的键顺序是(a, b)还是(b, a)。“物化视图”与普通视图在查询优化中的关键区别在于A. 物化视图存储了定义查询的实际结果可用于重写查询以加速。B. 物化视图支持更多的DML操作。C. 物化视图的定义更复杂。D. 物化视图不占用存储空间。在应用“将选择操作下推”的启发式优化规则时以下哪种情况该规则可能不适用或无效A. 选择条件涉及聚集函数例如σ_{AVG(salary) 5000}(employee)。B. 选择操作位于连接操作下方。C. 选择条件中的属性在子查询中不可用。D. 以上所有情况。“索引条件下推”主要优化了哪种操作的性能A. 在仅使用索引即可满足查询时避免访问表数据。B. 将WHERE子句中的部分条件在存储引擎层进行过滤减少回表次数。C. 将多个索引的扫描结果进行合并。D. 在构建索引时对数据进行预过滤。三、 存储引擎与索引 (6题)LSM-Tree 相比 BTree 的一个主要优势是A. 点查询延迟更低。B. 范围查询效率更高。C. 顺序写入吞吐量极高。D. 内存占用更小。在 InnoDB 存储引擎中关于“自适应哈希索引”的描述错误的是A. 它由数据库自动创建和管理用户无法显式创建或删除。B. 它基于 BTree 索引的常用搜索键值构建。C. 它对于等值查询和范围查询都有显著加速效果。D. 在负载模式频繁变化或内存紧张时它可能带来额外开销。“覆盖索引”是指A. 一个索引包含了查询中涉及的所有列。B. 一个索引包含了表中所有的列。C. 一个索引被另一个更大的索引所包含。D. 使用多个索引来覆盖一个查询的所有条件。在数据库系统中“预写式日志”和“影子页面”是两种不同的恢复技术。它们的主要区别在于A. WAL 记录的是逻辑操作而影子页面记录的是物理变化。B. WAL 需要额外的日志文件而影子页面不需要。C. WAL 在事务提交时通常只需持久化日志而影子页面需要立即写回数据页。D. WAL 无法用于介质恢复而影子页面可以。关于 BTree 和 B-Tree 的区别以下说法正确的是A. BTree 的内部节点也存储数据记录。B. BTree 的所有数据记录都存储在叶子节点并且叶子节点通过指针链接。C. B-Tree 的查询性能在任何场景下都优于 BTree。D. BTree 的树高通常比同等数据的 B-Tree 更高。“填充因子”在索引创建中用于控制什么A. 索引叶子节点中预留的空间比例用于后续的插入操作减少页分裂。B. 索引数据的压缩率。C. 内存中缓存索引页的数量。D. 索引创建过程中使用的临时磁盘空间大小。四、 分布式与高级主题 (9题)在分布式数据库的“两阶段提交”协议中“协调者故障”在哪个阶段可能导致参与者资源永久阻塞A. 阶段一投票阶段协调者发送prepare请求后故障。B. 阶段二提交阶段协调者发送部分commit指令后故障。C. 以上两个阶段都可能。D. 2PC协议本身通过超时机制可以完全避免阻塞。根据 CAP 定理对于一个跨地域部署的、要求强一致性的分布式数据库系统当发生网络分区时它必须A. 牺牲可用性拒绝部分或全部客户端的请求。B. 牺牲一致性允许不同分区返回不同的数据。C. 牺牲分区容忍性将系统退化为单点系统。D. 可以同时保证可用性和一致性。“向量化执行引擎”相较于传统的“火山模型”执行引擎其性能优势主要来源于A. 减少了函数调用开销利用 CPU SIMD 指令进行批量处理。B. 采用了更优的查询计划。C. 使用了更多的索引。D. 减少了网络传输开销。在“基于共识的复制”如 Raft/Paxos中“领导选举”过程的目的是A. 确定哪个副本拥有最新的数据。B. 在多个服务器中选出一个唯一的领导者由它来协调所有的写请求简化管理并保证操作顺序。C. 分配客户端的读请求到负载最低的副本。D. 检测并移除故障的副本。“NewSQL”数据库系统如 Google Spanner, CockroachDB宣称同时提供了 SQL 接口、水平扩展和强一致性其底层最核心的技术通常是A. 主从异步复制。B. 分布式事务的两阶段提交。C. 全局时钟如 TrueTime或混合逻辑时钟结合分布式共识协议。D. 最终一致性的数据分区。“物化视图”的“增量维护”面临的主要挑战是A. 计算初始物化数据成本高。B. 当底层基表发生插入、删除、更新时高效地推导出对物化视图的增量修改。C. 物化视图的存储成本。D. 物化视图的查询语法复杂。“时序数据库”针对时间序列数据优化其特殊的存储和索引设计通常不包括A. 将时间戳作为主键或首要分区键。B. 使用列式存储并对数据块进行高效压缩如 Gorilla, Delta-of-Delta 编码。B. 为每个时间序列创建单独的 BTree 索引。D. 支持数据降采样和自动过期策略。在“内存数据库”中为了保证持久性通常采用的机制是A. 定期将整个数据库快照写入磁盘。B. 采用非易失性内存。C. 通过预写日志和定期检查点将更改持久化到磁盘。D. 依赖操作系统虚拟内存的交换机制。“图数据库”使用免索引邻接作为其核心存储模型这意味着A. 节点直接存储指向其关联边和邻接节点的物理指针或 ID遍历关系速度快。B. 完全不需要任何形式的索引。C. 所有查询都通过全局索引完成。D. 数据以巨大的邻接矩阵形式存储。参考来源【光子 AI 出品】《AI 大模型 Agent 面试题30道超详细➕必过答案解析 ​​​II 》做了100件事老板只回一句和业务有啥关系史上最全 50 道 Redis 面试题ccmusic-database效果展示麦克风实时录音→30秒截取→5类预测全链路演示1.11 python 面试题 30道零基础玩转ccmusic-database16种音乐流派一键识别

相关新闻