# 手写数据库(CPP) | 代码随想录知识星球

知识星球再添 CPP专栏项目, 手写一个数据库,关于数据库项目,最知名的就是cmu15445

将这门课程做完,不仅实现一个独立项目,还可以很好的结合数据库八股文知识,做到学以致用。

授课 cmu15445 的教授明确要求不让学生上传代码到Github,尊重课程的规定,所以本项目不提供代码。

但本项目文档可以帮助大家速成cmu15445,【学习指引】【项目架构】【项目难点】【简历写法】【面试问题】以及【拓展和可以深挖的点】都给大家安排上了

如果大家想找代码,建议在github上搜 2022版cmu15445的课程,相对资料比较多。

# 学哪一个学期的版本?

每一个学期基本上是4个lab, 从存储、索引、事务等逐级向应用层靠拢, 具体区别为

学期 lab1 lab2 lab3 lab4
Fall 2019 缓存池(时钟更换) 哈希索引 查询计划 日志和恢复(日志+Checkpoint)
Fall 2020 缓存池(LRU) B+树索引 查询计划 并发控制(锁管理器+死锁检测)
Fall 2021 缓存池(LRU+并发多缓存池) 哈希索引 查询计划 并发控制(锁管理器+死锁检测)
Fall 2022 缓存池(LRU-K+可扩展哈希) B+树索引 查询计划 并发控制(锁管理器+死锁检测)
Fall 2023 缓存池(LRU-K+磁盘调度) 哈希索引 查询计划 并发控制(MVCC+Serializable隔离级别)

这个主推秋季学期的版本, 因为春季学期可能不是Andy上课 2024最新版还在更新中, 但参考资料肯定是最少的, 自学能力强的同学可以上24fall!

可以看出,bustub是不断被完善的, 2023版甚至有MVCCSerializable隔离级别非常地Amazing, 但目前建议做B+树索引版本的2022版, 一方面是因为资料比较多, 另一方面还是因为面试时关注数据结构的主要索引就是B+树, 学有余力的同学可以做2023的lab4

# 参考资料

这里查看所有学期的官方主页: https://15445.courses.cs.cmu.edu/

# 项目专栏目录

  • 技术栈
  • 相关学习资料
    • 学哪一个学期的版本?
    • 课程视频
    • 环境搭建
  • Lab指南
    • lab1
    • lab2
    • lab3
    • lab4
  • 项目架构
  • 代码梳理
  • 项目难点
  • 简历写法
  • 相关面试问题
    • raft 相关
    • 数据库相关
  • 拓展&&可以深挖的点
    • 为什么现在更多的KV数据库采用LSM Tree而抛弃了B+树?

# 简历写法

很多录友做完项目不知道该怎么写到简历上,本项目专栏直接把简历写法写好了,大家可以直接用:

(具体项目亮点在公众号上做打码处理,避免过于重复)

# 本项目常见问题

专栏里都给出明确的例子,帮助大家面试准备:

# 项目亮点以及项目细节

为了更好的掌握这个项目,亮点和细节都给大家讲清楚:

# 项目难点

很多录友做完项目,不知道项目难点是什么,文档都给大家列出来。

面试中,面试官最喜欢问的就是项目难点,以及这个难点你是如何解决的。

# 项目拓展出的基础知识

在做做项目的时候,最好的方式就是 理论基础知识和项目实战相结合。

面试官也喜欢在 项目中问基础知识(八股文),本专栏也给出可以拓展哪些基础知识

# 项目专栏部分截图

# 突击来用

如果大家面试在即,实在没时间做项目了,可以直接按照专栏给出的【简历写法】,写到简历上,然后把项目专栏里的面试问题,都认真背一背就好了,基本覆盖 绝大多数 项目问题。

# 获取本项目专栏

本文档仅为星球内部专享,大家可以加入知识星球里获取,在星球置顶一:

加入星球后可以获取全部项目文档和八股资料!。

这里给出10元代金券,领代金券加入,代码随想录知识星球支持三天内(72h)可以全额退款。

加入知识星球后,记得加如下微信,拉你到星球交流群:

上次更新:: 12/6/2024, 5:35:58 PM
@2021-2024 代码随想录 版权所有 粤ICP备19156078号