这部分主要是实现一些基本的 Plan_Node 的 Executor, 我们可以首先通过一个列子来看, 就是ProjectionPlan_Node 的例子. 我们使用一个简单的EXPLAIN的例子引入 PlanNode 的执行流程: Copy -- 在控制台使用 EXPLAIN 解释下面的语句, 结果输出如下EXPLAINSELECT*FROM__mock_table_1WHEREcolA>1;===BINDER===BoundSelect...
CMU_15445_P3_Part4 Sort + Limit Executors + Window Functions + Top-N Optimization# 这里的实现比较简单, 就不赘述了, 后续补充一下这部分的优先队列的使用, 以及选择的方式 Window Functions# 窗口函数的实现才是这部分的重点 窗口函数介绍# MySQL 窗口函数是一类特殊的 SQL 函数, 用于在查询结果中对数据进...
把p3对应的说明看了,但还是一头雾水,要看懂一个算子是怎么运行的,首先得看以下几个类的源码(按照顺序) 相关类 schema: 表示一行信息的结构,由若干个coloum组成 Tuple: 存储每一条记录,需要一个对应的sechma表示这个tuple的结构,内部成员有RID(每个tuple的标识符,包括存储在哪个页面以及在页面上对应的slot编号) ...
CMU 15445-2022 P3 Query Optimize 本文记录Leaderboard选做的3条query计划优化。 只是个人的优化方案,不一定是最优解。如有错误欢迎指正。 整个优化大概写了六百多行,六七个优化规则外加一些辅助函数。建议在阅读本文前先熟悉官方给的几个优化的写法。这一节有很多树的遍历算法,比较考验基本功。 强烈推荐阅读 pingca...
提高了学习热情。由于今年的测试代码未公开,部分测试案例难以复现,我整理了一些案例供读者自测。截止2022年12月17日20:59,自动评分系统排行榜情况如下:12.22:优化了P1扩展哈希表,改进了P3 leaderborad中SQL优化部分。12.19:成绩更新 12.20:成绩更新 12.23:成绩更新 1.19:成绩更新 ...
实验P3(execution)部分关注于查询执行计划的生成,提供了一种理解tuple、page、table物理组织方式及Schema相关类交互关系的途径。这部分内容看似复杂,实际理解后有助于掌握SQL查询优化的原理。实验P4(lock_manager)相对简单,主要涉及锁管理机制,遵循课程指导完成即可。课程中最重要的部分之一是实验P2的b+...
add_custom_target(check-clang-tidy-p3 ${BUSTUB_BUILD_SUPPORT_DIR}/run_clang_tidy.py # run LLVM's clang-tidy script -clang-tidy-binary ${CLANG_TIDY_BIN} # using our clang-tidy binary -p ${CMAKE_BINARY_DIR} # using cmake's generated compile commands ${P3_FILES} ) add_custom_target...
CMU-15445LAB2:实现一个支持并发操作的B+树 CMU-15445LAB2:实现⼀个⽀持并发操作的B+树 概述 经过⼏天鏖战终于完成了lab2,本lab实现⼀个⽀持并发操作的B+树。简直B格满满。B+树 为什么需要B+树 B+树本质上是⼀个索引数据结构。⽐如我们要⽤某个给定的ID去检索某个student记录,如果没有索引...
@@ -328,7 +328,9 @@ set(P3_FILES "src/include/execution/executors/sort_executor.h" "src/include/execution/executors/topn_executor.h" "src/include/execution/executors/update_executor.h" "src/include/execution/executors/window_aggregate_executor.h" "src/execution/aggregation_executor.cpp" "sr...
显著提高了并发度。P3实验(execution)涉及查询计划与表达式树生成,理解tuple、page、table的物理组织方式以及Schema类的交互关系。实验重点在于阅读与理解代码。P4实验(lock_manager)相对简单,遵循指导即可完成,无需担忧大坑。实验中的图相关测试设计为诊断线程延迟唤醒,确保在即将睡眠时清空容器。