Lecture#12 Query Processing1
摘要:
## 1 Query Plan 通常一个 SQL 语句会被组织成如图的树状查询计划,数据从叶节点流到根节点,查询结果在根节点中得出。 通常,树上的操作符 operators 是二元的 (1~2个子运算符)。 而本节将讨论在这样一个计划中,如何为这个数据流动过程建模,大纲如下: - Processin
Lecture#11 Joins Algorithms
摘要:
## 1 Joins 在关系型数据库中,我们常常通过规范化 (Normalization) 设计避免信息冗余;因此查询时,就需要通过 Join 将不同 table 中的数据合并来重建数据。 本课关注双表的**内等值**连接。原则上我们希望,连接时将小表放到左侧 (作为外表)。 首先要讨论的是:Joi
Lecture#10 Sorting & Aggregation Algorithms
摘要:
接下来将学习使用我们现在学习的 DBMS 组件来执行查询。 我们今天要讨论的算法都是基于 Disk 的,即查询的中间结果也需要存储到磁盘中。我们需要使用 Buffer Pool 去实现这些算法,要最大化磁盘连续 I/O。 Query Plan:算子组织成树形结构,数据从叶子节点流向根节点,根节点的输
Lecture#09 Index Concurrency Control
摘要:
review: 上几节讲了 hash table、B+Tree、Radix Tree 及其他树形结构。我们假设这些数据结构只能被一个线程访问,且在同一时间只有一个线程能对该数据结构进行读写数据。 然而大部分DBMS在实际场景中需要允许多线程安全地访问数据结构,以充分利用CPU多核以及隐藏磁盘I/O延
Project #3 - Query Execution 项目要求
摘要:
https://15445.courses.cs.cmu.edu/fall2022/project3/ Project #1 中我们实现了一个 buffer pool manager。Project #2 中我们实现了一个 B+Tree 索引。在此次 Project,你将实现一个让 BusTub 执
Project #2 - B+Tree (下)
摘要:
本篇中完成 Project 2 的 Task 4,实现 B+Tree 的并发部分,我们要基于 Latch Crabing 策略将之前实现的单线程 B+Tree 变为多线程。 理论部分 课件 Lecture #09: Index Concurrency Control 中详细讲解了并发控制的基本算法和
Project #2 - B+Tree 项目要求
摘要:
https://15445.courses.cs.cmu.edu/fall2022/project2/ CHECKPOINT #1 Task #1 - B+Tree Pages 实现三个 page class 来存储 B+Tree 的数据。 B+Tree Parent Page src/includ
git 回退到某个 commit 版本
摘要:
1 查看 commit 日志 ```shell git log ``` 2 复制你想回退到的 commit 版本的 commit_id 3 本地回退 ```shell git reset --hard commit_id ``` 4 同步到远程仓库(可选的,若远程仓库不想回退就不用执行该语句) ``