CONTENT LIBRARY

全部内容

按主题整理的内容条目。打开单条内容,可查看详细说明、流程、关联资料和来源。

case-01-data-layout · 基础

数据布局:行存与列存

同一张表按行或按列组织,都会经过同一批字节,却可能让分析查询读到不同数量的数据。

打开内容 ↗
case-02-raid-nesting · 基础

RAID 嵌套:扁平条带与多层结构

用固定数量的设备比较扁平与嵌套 RAID 0 的顺序吞吐,拆解层级本身是否带来收益。

打开内容 ↗
case-03-bplus-tree · 基础

B+ 树:分裂、上提与叶链

逐个插入键值,观察叶节点分裂、分隔键上提和叶链重接如何让树保持平衡。

打开内容 ↗
case-04-bitmap-bloom · 进阶

位图索引与 Bloom 过滤器

把 WHERE 谓词变成位序列,通过位运算求交集,并比较 Bloom 过滤器的快速排除能力。

打开内容 ↗
case-05-pandas-bit-sequences · 进阶

pandas 位序列:布尔掩码就是位图

从 DataFrame 的布尔条件出发,理解一条行级 True/False 序列如何对应位图筛选。

打开内容 ↗
case-06-radix-trie · 进阶

基数树与圣诞树:共享前缀如何省空间

把键拆成前缀片段逐层查找,理解 Trie 路径压缩和描述符递归细分。

打开内容 ↗
case-07-recursive-model-index · 进阶

递归模型索引:预测键的位置

用小模型拟合有序键到数组下标的映射,再在预测邻域中修正位置。

打开内容 ↗
case-08-result-subdatabase · 进阶

结果子数据库:半连接与 Yannakakis 算法

沿着连接树先筛出真正参与结果的元组,避免物化庞大的完整连接结果。

打开内容 ↗
case-09-code-generation · 进阶

代码生成:解释执行与编译执行

对照算子树解释执行和生成直线代码的开销,理解代码生成何时值得投入。

打开内容 ↗
case-10-shared-scan · 进阶

共享扫描:多条查询共用一次读取

让多条并发查询共享一次数据扫描,比较扫描成本、过滤条件和结果交付。

打开内容 ↗
case-11-external-merge-sort · 进阶

外部归并排序:数据超过内存怎么办

把大数据分成内存可容纳的小段,写出有序归并过程并观察 I/O 轮数。

打开内容 ↗
case-12-top-k · 进阶

Top-k 查询:只为前几名付费

比较完整排序后截断与直接求前 k 项,观察需要的工作量如何随 k 变化。

打开内容 ↗
case-13-online-aggregation · 进阶

在线聚合:扫描未完成先看估计

随着样本逐步到达更新聚合估计,观察误差如何随扫描进度收敛。

打开内容 ↗
case-14-join-order-enumeration · 高级

连接顺序枚举:DPsize、DPsub 与 DPccp

在同一问题接口下比较三种枚举策略的候选计划规模和代价。

打开内容 ↗
case-15-distributed-joins · 高级

分布式连接:少搬数据

把连接放到分布式节点上,区分计算代价与跨节点传输代价。

打开内容 ↗
case-16-z-order-curve · 高级

Z 序曲线:二维位置进入一维索引

交织坐标位得到 Morton code,再比较曲线映射与二维邻近关系。

打开内容 ↗
case-01 · 入门

课程入口:先把材料、环境和实验路径理清

从课程说明、系统源码和 16 个 Notebook 开始,建立一条不会被路径与格式卡住的数据库实验路径。

打开内容 ↗