Database - mysangle/twentyhours GitHub Wiki
Database
1. ์ผ๋ฐ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ๋ ์ ๋ํ ๊ฐ์๋ฅผ ๋ฃ๋๋ค.
- Andy Pavlo์ ๊ฐ์๊ฐ ๋งค๋ ๊ฐ์ ํ๊ธฐ์ ์ด๋ฆฌ๊ณ ์๋ค.
- ๊ต์ฌ์ธ Database System Concepts๋ ๊ฐ์ด ์ฝ๊ธฐ.
- Intro to Database Systems
- CMU 15-445/645 - Fall 2024
- https://15445.courses.cs.cmu.edu/fall2024/
2. ๋ถ์ฐ ํ๊ฒฝ์ ๋ํ ๊ณต๋ถ๋ฅผ ํ๋ค.
- ๋ฐ์ดํฐ ์ค์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ค๊ณ๋ฅผ ์ฝ์ด์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ์ฝํ๋ค.
- MIT์ ๊ฐ์๋ฅผ ๋ฃ๋๋ค.
- ์ด ๊ฐ์๋ ๋งค๋ ๋ด์ ์ด๋ฆฐ๋ค.
- Distributed Systems
- MIT 6.5840 - Spring 2025
- https://pdos.csail.mit.edu/6.824/index.html
3. ๊ฐ๋จํ๊ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ค์ด๋ณด๋ ์คํ ์์ค๋ค์ ๋ฐ๋ผ์ ๊ตฌํํด๋ณธ๋ค.
- Build Your Own Database From Scratch in Go
- ์ด ์ธ์๋ ๋ง์ผ๋ฏ๋ก ์ ์๋ ์ธ์ด๋ก ๋์ด ์๋ ๊ฒ์ ์ฐพ์์ ๋ณด๋ ๊ฒ๋ ์ข๋ค.
4. PostgreSQL์ ๊ตฌํ์ด ์ด๋ป๊ฒ ๋์ด ์๋์ง ํ์ธํ๋ค.
5. Sqlite์ ํ์ผ ๊ตฌ์กฐ๊ฐ ์ด๋ป๊ฒ ๋์ด ์๋์ง ์์๋ณธ๋ค.
- SQLite File Format Viewer
- https://sqlite-internal.pages.dev/
- Sqlite ์ฌ์ฉ์ ๋ง๋ค์ด์ง๋ db ํ์ผ์ ๋ฃ์ด์ฃผ๋ฉด ํ์ผ ๊ตฌ์กฐ๋ฅผ ์๋ ค์ค๋ค!
Book
- Database Internals: A Deep Dive into How Distributed Data Systems Work
- SQLite Database System Design and Implementation
- The Art of Problem-Solving in Software Engineering:How to Make MySQL Better
- High Performance MySQL
- Crafting Interpreters
- ์ธํฐํ๋ฆฌํฐ์ ๋ํด ๊ณต๋ถ ํด๋ณผ ์ ์๋ ์ฑ
- ์ฑ ์ 3๋ถ์์ ๋ฐ์ดํธ์ฝ๋์ ๋ํด ๊ณต๋ถ ํ ์ ์๋ค.
- Make A Language
Articles
- How Databases Store Your Tables on Disk
- A Survey of B-Tree Locking Techniques(pdf)
- Citus: Distributed PostgreSQL for Data-Intensive Applications(pdf)
- Calvin: Fast Distributed Transactions for Partitioned Database Systems(pdf)
- SQLite: Past, Present, and Future(pdf)
- High-Performance Concurrency Control Mechanisms for Main-Memory Databases(pdf)
- A Log-Structured Hash Table for Fast Key/Value Data(pdf)
- 30 years of PostgreSQL buffer manager locking design evolution
- Plan Representation: #1 Lesson Learned from Building an Optimizer
- Faster interpreters in Go: Catching up with C++
- Torn Write Detection and Protection
- Decomposing Transactional Systems
- Virtual Tables in SQLite with Go
- What Really Happens When You Drop a Column in Postgres
- B+Tree index structures in InnoDB
์ฐธ๊ณ
- ADVANCED DATABASE SYSTEMS
- CMU 15-721 - Spring 2024
- ๋งค๋ ์๋ ๊ฐ์ ์ธ๋ฐ 2024๋ ์ OLAP์ ๋ํ ๋ด์ฉ์ด ์ฃผ๋ฅผ ์ด๋ฃจ๋ฉฐ ์ฃผ๋ก ๋ ผ๋ฌธ์ ๋ด์ฉ์ ๋ํ ์ค๋ช ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
- https://15721.courses.cs.cmu.edu/spring2024/
- LSM tree๊ด๋ จ ๊ฐ๋จํ ๊ตฌํ
- High-performance distributed key-value store with a log-structured merge tree implementation written in pure Go
- LSM tree ๊ด๋ จ ์ฐธ๊ณ ํ ๋งํ ๋ฌธ์๋ README์ ์์
- https://github.com/tferdous17/genesis
- Raft๋ฅผ Go๋ก ๊ตฌํํด๋ณด๋ ์๋ฆฌ์ฆ
- Limbo
- Limbo is a work-in-progress, in-process OLTP database management system, compatible with SQLite.
- https://github.com/tursodatabase/limbo