關聯性資料庫是最經典的資料儲存方式,其提供嚴謹的交易控制、彈性的資料儲存格式。
因此過去絕大部分的資料儲存都是使用關聯性資料庫。
在設計關聯性資料庫常需要考慮的包含:正規化、查詢最佳化、Sharding、Partition
資料正規化是一種將資料按照其邏輯關係分別儲存於多個不同資料表的方法,以避免在多個資料表中儲存重複的資料。
資料正規化常用於資料屬性較複雜的情況下,當單一資料表無法完整儲存所有資料時。
當資料處理流程與屬性十分複雜時,過度正規化可能導致資料處理流程過於繁複,增加開發成本和維護複雜度。因此,在某些情況下,可以考慮減少正規化的設計,以簡化資料處理流程。
由於資料庫通常存有大量的資料,如果查詢語句沒有經過最佳化,可能會導致查詢速度較慢,使使用者感到不滿,同時也會消耗過多的系統資源。因此,在處理大量資料時,需要關注查詢最佳化的問題。
Sharding (分片) 是一種將龐大的資料表根據時間、字母、數字或Hash值等設定為shard key的方法,並使用該shard key將資料表分割儲存於多個不同的伺服器中。
Partition (分割) 是將一個巨大的資料表根據時間、字母、數字或Hash值等方式設定分區鍵(Partition key),並使用該分區鍵將資料表分割並存儲於同一伺服器上的多個不同硬碟或磁碟陣列中。