CMU15445 Lecture 10 Sorting + Aggregations


本节主要介绍Operator Execution

Sorting

对于查询的中间结果也有可能放到磁盘中,比如查询中国人的相关信息(10+亿)
对于DBMS的操作,更加偏好具有sequential I/O的算法

外部排序(外部归并排序)每次两个页是2way外部归并排序

  • 先把每个页的内部排序,塞到内存中排序
  • 之后每次塞两个页到内存,不停的两个页的归并排序

聚簇B+树(clustered B+Tree),与非聚簇B+树
早物化与晚物化

Aggregation

Sorting Aggregation很简单
还可以Hahsing AggregationHashing Aggregatin更好,因为它不需要排序,时间复杂度更低

对于需要用到磁盘的Hashing Aggregation需要用到extrenal Hashing Aggregation,分为两步:

  • Partition
    对于第一个hash,只要是hash的key都会放到相同的桶里,就是首先不处理碰撞,当一个页中的重复项过多,可以提前做去重,也就是distinct

对于AVG, 需要记录个数与总和,因为如果添加了新的tuple之前记录就没用了

  • ReHash
    第一个应该就是指外部归并排序过程中已经排序好的中间结果