第十四屆

software-dev
NoSQL: Not Only SQL
Kei Liao

系列文章

DAY 1

[Day1] 資料庫的歷史:關聯式資料庫的出現

現在最常見的關聯式資料庫並不是橫空出世後就廣泛被使用,而是隨著資料管理需求逐漸發展而成,再持續因需求與技術不斷的變化,於是出現了 NoSQL。我們就從資料庫的發...

DAY 2

[Day3] 關聯式資料庫交易的 ACID 特性

在操作關聯式資料庫通常會有多個步驟,當把步驟打包成一包期望資料庫把這包步驟視為一個行為時,這包步驟就稱為交易(Transaction)。在 RDB 中交易具有...

DAY 3

[Day2] 資料庫的歷史:NoSQL 的出現

儘管關聯式資料庫那麼方便好用,但在資料量持續增長、強調高可用性和可擴展性的領域,關聯式資料庫並無法滿足期望。 當應用服務需要消化的請求數量逐漸成長,我們可以把資...

DAY 4

[Day 4] NoSQL Database 的 BASE 特性

操作資料庫時,在資料處理的環節正確使用交易可以節省我們很多心力,但為了達到 ACID 同樣需要付出成本。NoSQL Database 選擇有策略的犧牲部分一致性...

DAY 5

[Day 5] CAP理論:取捨取捨,到底取什麼捨什麼?

前幾天不斷提到取捨、選擇、犧牲、放棄、追求......等行為,到底取什麼捨什麼? 以社群媒體的情境來考慮,用戶會期望可以隨時隨地滑手機看到好友們的新動態。如果暫...

DAY 6

[Day 8] Partiton & Sharding 資料分片

前面幾篇討論如何透過多台主機突破運算力限制,接著來談談如何切分資料存放在多台主機。資料太多怎麼辦?切!切分方式分成水平和垂直兩種,垂直切分 (vertical...

DAY 7

[Day 6] Master-Slave Replication 主從複製

起初,在一台資料庫無法處理所有需求時,於是決定加開一台變成兩台,但兩台主機該如何分工?觀察對資料庫的請求發現請求可以分為兩類:讀取和寫入,那麼一台負責寫而另一台...

DAY 8

[Day 7] Peer-to-peer Replication 點對點複製

Master-Slave 的模式限制在於只有一個 Master 處理寫入請求,那如果每個節點都可以寫入是不是就能克服這個限制?Peer-to-peer 模式裡每...

DAY 9

[Day 10] Round-Robin Sharding

另一種也很直覺的切方方式是 Round-Robin Sharding,簡單來說就是輪流分配,假設有三台主機,將資料輪流分配到第一、二和三號主機上;若有五台主機,...

DAY 10

[Day 9] Range-based Sharding

水平切分的其中一種方式:依資料範圍進行分片。這種方式很直覺,以會員資料為例,將會員依名字首字字母、生日、Id,甚至星座進行分片,再將分片分別存放在不同主機中。因...