iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
Software Development

資料庫大哉問 系列

這系列已 MySQL 為主,其他資料庫為輔介紹資料庫設計原理,雖是 MySQL 為主,但很多概念是通用的,例如 Page & B+Tree & WAL & MVCC & Lock 等。

這個系列會分成七大段落:
1. MySQL 儲存結構介紹
2. MySQL 查詢效能優化方式
3. MySQL Transaction ACID 原理
4. MySQL Master-Slave 架構
5. 分散式資料庫設計
6. PostgreSQL 架構與 MySQL 的比較
7. 其他資料庫用途以及儲存結構介紹

鐵人鍊成 | 共 30 篇文章 | 43 人訂閱 訂閱系列文 RSS系列文
DAY 21

Day21 - PostgreSQL 特輯 - 為何要用 Heap 儲存資料?(Heap, Free Space Map, CTID & Tuple Pointer Array)

MySQL 跟 PostgreSQL (PG) 都是主流的關聯式資料庫,但在儲存結構他們卻選擇了不同的策略,MySQL 以 B+Tree 為主,PG 則用 He...

2025-09-21 ‧ 由 vicxu 分享
DAY 22

Day22 - PostgreSQL 特輯 - 如何實踐 Isolation?(xmin, xmax, VACCUM & HOT)

PG 也是用 MVCC 實作 Isolation 機制,但卻沒有像 MySQL 的 Undo Log 結構。 那麼沒有 Undo Log,PG 要怎麼儲存不同版...

2025-09-22 ‧ 由 vicxu 分享
DAY 23

Day23 - PostgreSQL 特輯 - 為何併發效能比 MySQL 好?(Serializable Snapshot Isolation & Clock Sweep Cache)

PG 一樣使用 MVCC 無鎖實現 Isolation RC & RR Level,但如果是 Write Skew & Phantom Read...

2025-09-23 ‧ 由 vicxu 分享
DAY 24

Day24 - MongoDB 特輯 - 為何無法實現完整的 ACID?(Isolation, Read & Write Concern)

MongoDB 為知名的 document-based NoSQL DB,提供了 schema-free 的 document 儲存,和 data shardi...

2025-09-24 ‧ 由 vicxu 分享
DAY 25

Day25 - Cassandra 特輯 - 為何適合大量寫入情境?(LSM Tree, Multi-Master)

Cassandra 是用來處理大量寫入的高可用分散式 Key-Value NoSQL DB,雖然是 NoSQL 但其實有 Schema,只不過 Schema 需...

2025-09-25 ‧ 由 vicxu 分享
DAY 26

Day26 - ClickHouse 特輯 - 什麼是 OLAP 資料庫?(Column Based DB & MergeTree)

SUM, AVG, COUNT 等聚合語法用於多筆資料計算,如果財務要 SUM 一整年訂單的獲利,資料量大時,堪比 Full Table Scan,MySQL...

2025-09-26 ‧ 由 vicxu 分享
DAY 27

Day27 - ElasticSearch 特輯 - 全文字搜尋是啥?(Lucene, Inverted Index & Trie)

文章搜尋是經典系統設計題,常見文字查詢有 Regex 跟 SQL Like,然而 Regex 效能差,SQL Like 不夠精準,例如 LIKE %dog% 會...

2025-09-27 ‧ 由 vicxu 分享
DAY 28

Day28 - Redis 特輯 - 為何 Redis 那麼快?(Data Structures & Non-Blocking IO)

MySQL & PostgreSQL 都有 In-Memory 快取 (Buffer Pool & Shared Buffer),那為何實務上還...

2025-09-28 ‧ 由 vicxu 分享
DAY 29

Day29 - AI 特輯 - 什麼是向量資料庫?(Vector & Similarity)

ChatGPT 掀起 AI 熱潮後,「讓模型變成專家」的需求激增,帶動了 RAG 系統的實作熱潮,向量資料庫作為 RAG 的關鍵技術也跟著爆紅。 什麼是向量?向...

2025-09-29 ‧ 由 vicxu 分享
DAY 30

Day30 - 資料庫大總結 (技術基石,定位與取捨)

資料庫大哉問已 MySQL 為主介紹了許多資料庫設計用到的技術,這些技術不限於 MySQL,能在大多資料庫系統中看到類似的身影。 哪些技術是資料庫設計的共同基石...

2025-09-30 ‧ 由 vicxu 分享