理解 Storage Engine 的內部知識
選擇適合的 Application
DB 如何儲存和檢索
根據 Storage Engine 有所不同
格式主要是 key-value pair
寫入有分
1. Append
2. Overwrite
極簡的 Query 效能是 O(n)
為了提升效能使用 Index data structure
使用額外的 metadata 幫助 Query
但這額外的結構就會影響寫入的效能
需要針對不同的 Query Patterns 來選擇最適合的 Indexing Structure
OLTP vs OLAP
OLTP 主流的 Storage Engine
Log-Structure
Update-In-Place
極簡的 Log:Append-Only File
SSTable
資料按照 Key 的順序排列
因為依序,所以可取該 Key 在最新 Segment 中的 Value 就好
SSTable
不需為了查找 Key 而在 Memory 中存所有 Key 的 index
將紀錄分塊(block),並在寫入 Disk 前壓縮
B-Tree
將資料庫分解成固定大小的塊(block)或頁面(page)
B-Tree
Write a new key
在 OLTP 上更複雜的 indexing structures
把資料都存在 memory(記憶體) 而最佳化的 DB
省去了將記憶體資料結構編碼為硬碟資料結構的開銷
OLAP & Data Warehouse
ETL
Column-Oriented Storage
不要將所有來自 Column 的值儲存在一起,而是將來自 Row 的所有值儲存在一起。
點陣圖編碼
資料立方