為什麼這個章節獨立成篇#
「資料庫」是工具,「儲存架構」是怎麼選與組合這些工具去支撐業務。電商是放大這些選擇的最佳場景:
- 訂單、商品、購物車、賬戶 ── 各有不同儲存特性
- 從零到 100 萬訂單、再到 100 億訂單 ── 演化路徑明確
- 一致性、可用性、性能、成本的取捨在每個系統都不同
本章用電商作為案例貫穿儲存架構的核心問題。涵蓋:訂單冪等與 ABA、商品多模態儲存、購物車混合儲存、隔離級別、分散式事務、ES 商品搜尋、快取策略、讀寫分離、分庫分表、Redis 叢集、不停機換庫、物件儲存、海量資料管道、NewSQL、LSM-Tree。
既有章節關聯#
| 已存在的章節 | 覆蓋範圍 |
|---|---|
| 02-database/01 MySQL 架構 | 連接器/解析器/優化器/執行器 |
| 02-database/02 索引 | B+ Tree、覆蓋索引、索引下推 |
| 02-database/03 事務與鎖 | ACID、MVCC、死鎖、一致性視圖 |
| 02-database/04 日誌系統 | redo log、undo log、binlog |
| 02-database/05 高可用 | 主備複製、雙 M、讀寫分離、binlog 格式 |
| 02-database/06 效能調優 | 慢查、EXPLAIN、參數 |
| 02-database/07 Redis 資料結構 | 跳表、壓縮列表、漸進式 rehash |
| 06-distributed-systems | 分散式系統通則 |
本章不重複底層內容,集中在「電商場景下怎麼用、怎麼演化、怎麼選型」。技術細節需要時跨章引用。
章節地圖#
| 章節 | 主題 |
|---|---|
| 01-ecommerce-system-design | 系統劃分、訂單冪等、ABA 問題 |
| 02-product-and-cart-storage | 商品多模態儲存、購物車前後端混合 |
| 03-transactions-and-isolation | InnoDB 隔離級別實戰、對賬 |
| 04-distributed-transactions | 2PC、本地訊息表、TCC、Saga、Outbox |
| 05-search-elasticsearch | 倒排索引、商品索引設計、搜尋召回 |
| 06-cache-strategies | cache-aside、穿透/雪崩/擊穿、Bloom filter |
| 07-read-write-split-replication | 讀寫分離、複製狀態機、最終一致性處理 |
| 08-archiving-and-sharding | 歷史歸檔、分片鍵、分片演算法、跨片查詢 |
| 09-redis-cluster-and-sync | Redis Cluster、超大規模、Binlog 實時同步 |
| 10-online-database-migration | 不停機換庫:雙寫、比對、灰度切流 |
| 11-object-storage | 物件儲存、大檔案拆塊、一致性 hash |
| 12-massive-data-pipeline | Kafka、HDFS、OLAP 選型 |
| 13-storage-technology-selection | 線上業務 vs 分析系統的選型決策 |
| 14-newsql | CockroachDB / Spanner 風格、彈性擴容 |
| 15-rocksdb-and-lsm-tree | LSM-Tree 讀寫權衡、compaction |
學習路徑#
- 正在做電商 / 高並發系統:01 → 03 → 04 → 06 → 07 → 08(核心一條龍)
- 資料量正在從 GB 變 TB:08 → 09 → 10 → 12(演化路徑)
- 想深入儲存引擎:03 → 11 → 14 → 15(從交易到底層)
- 架構師選型參考:13 為主,配合各章一節