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 开始,建立一条不会被路径与格式卡住的数据库实验路径。
打开内容 ↗