闭卷说明“记录布局与变长字段”的对象、成立条件和一个失败反例。
数据库系统 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
闭卷说明“页与槽式页面”的对象、成立条件和一个失败反例。
闭卷说明“文件组织与堆表”的对象、成立条件和一个失败反例。
闭卷说明“缓冲池与替换策略”的对象、成立条件和一个失败反例。
闭卷说明“B+ 树结构与范围查询”的对象、成立条件和一个失败反例。
闭卷说明“哈希索引、位图与适用边界”的对象、成立条件和一个失败反例。
闭卷说明“聚簇、覆盖与复合索引设计”的对象、成立条件和一个失败反例。
应覆盖:数据库以页为主要 I/O 单位;槽目录让记录在页内移动而稳定 RID,删除后可压缩空洞;规则:RID 常写作 (page_id,slot_id),可用空间必须扣除页头和每条槽项;并能围绕“8 KiB 页底部增长记录区、顶部增长槽数组;更新变长记录时只改槽偏移,上层索引仍引用同一槽号”给出可执行或可计算的反查。
应覆盖:定长字段便于定位,变长字段常通过偏移表组织;NULL 位图、对齐和版本信息都占空间;规则:记录大小 = 固定头 + NULL 位图 + 定长区 + 偏移数组 + 变长数据 + 对齐开销;并能围绕“一条用户记录含 id、状态、昵称和简介时,页内可保存固定头与变长区偏移,更新简介可能触发行迁移”给出可执行或可计算的反查。
应覆盖:缓冲池缓存磁盘页,pin 防止正在使用的页被淘汰,dirty 页写回需遵守日志先行;命中率不是唯一目标;规则:有效访问时间 EAT ≈ h·t_mem +(1−h)·t_io,且脏页淘汰还增加写 I/O;并能围绕“顺序扫描可能污染小型 LRU,使热点索引页被逐出;可用 scan-resistant 策略或独立池”给出可执行或可计算的反查。
应覆盖:堆文件插入快但无序扫描;有序文件范围查询好却维护昂贵;组织方式必须匹配主要工作负载;规则:全表扫描 I/O 约为数据页数 B;点查堆表平均可能接近 B/2 页;并能围绕“事件日志持续追加适合堆表加时间索引,若强行按用户排序会让每次插入都寻找位置并移动数据”给出可执行或可计算的反查。
应覆盖:哈希擅长等值但不支持有序范围;位图适合低基数分析列,却不宜承受高并发逐行更新;规则:索引选择取决于谓词形态、基数、更新率和并发模式,不是越多越快;并能围绕“status='paid' 的仓库分析可用位图组合,用户邮箱等值查可用哈希;按邮箱前缀范围则需有序索引”给出可执行或可计算的反查。
应覆盖:B+ 树内部节点只导航,叶节点保存有序键并串联;高度低、范围扫描连续,是通用磁盘索引;规则:高度约为 ceil(log_f N),一次点查 I/O 约为树高加数据页访问;并能围绕“在 (dept_id,salary) 索引上查某部门薪资区间,可先定位首叶再沿叶链扫描;只查 salary 不能利用左前缀定位”给出可执行或可计算的反查。
应覆盖:聚簇决定相邻键是否物理接近,覆盖索引可避免回表;复合索引顺序由等值、范围、排序与选择率共同决定;规则:收益必须减去写放大、空间和维护成本;用真实计划与统计数据验证;并能围绕“查询 WHERE tenant_id=? AND created_at>? ORDER BY created_at 可用 (tenant_id,created_at);附带 status 可能形成覆盖”给出可执行或可计算的反查。