[Day7] 讀 RDBMS 課程 2019 - Database Internal Structure
By Triton Ho
At Lesson 2: Page 1 - Page 12
Notes
File System
- Normally, Most file systems will divide the hard disk into blocks (aka. pages).
- Even if a file is only 1 bytes, it will still occupy 4 KB of space at file system based on 4 KB block size.
- 硬體操作是以區塊為單位
- 每個 page 在同一時間只能被一個 TX 改動
把性質相近的 Record 物理性放到一起會提高 cache hit rate ,但是更容易發生 Contention => 就是說:單一 page 能儲存越多的東西,READ的效能會越好,但是 WRITE 效能會越差
How RDBMS Saves Data?
- RDBMS 建立一個/數個巨型的檔案,然後把空間切成 8KB (postgreSQL, Oracle) 或者16KB (MariaDB) 的區塊
- 一個區塊會被多個 record 共用,並且緊密地排列
- 不管 Create / Update / Delete 也好,要重新整理 8/16KB 的數據還是很簡單的
- 如果是需要排序的,區塊會用 double-linked list 的方式連結起來