Skip to main content

简介

Database 是以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。一个数据库由多个表空间(Tablespace)构成。

🔑 道法自然

📅 计划

  • 课程:CMU/MIT 刷课 100%
  • 书本:
    • Oracle Database 编程艺术
    • 数据库系统概念
    • 编译原理
    • 算法导论
    • C++ Primer Plus
名称内容进度备注
CMU 15-445数据库基础100%
CMU 15-721数据库高级10%
MIT 6.824分布式系统100%容易忘, 曾学过
Panda手撸数据库5%

数据库,选择Rust/C++ 编写,有极大竞争力。

🚀 快速启动

选择一个单机数据库,学习他有哪些功能,试着画一下整体架构。

查询引擎:尝试用 GDB 调试 SQL 执行整体流程,搞清楚 SQL 执行需要依赖那些关键模块。

存储引擎:手撸 LSM-Tree、B+Tree

📁 技能

必备技能。

  • 编程语言(Python/Java/C++/Rust)
  • 计算机基础
  • 算法基础

常见算法和数据结构:

  • B+Tree
  • LSM-Tree
  • SkipList
  • 二分查找
  • 排序算法
  • 链表
  • Raft/Paxos/ZAB
  • 一致性 Hash
  • 可扩展 Hash 表
  • Linear Probing Hash Table
  • LRU-K / Clock