三种数据库架构的介绍
從數據庫架構設計的角度,主要有三種,Shared Everything、Shared Disk以及Shared Nothing。
1.?Shared Everything
一般指的是單個主機的環境,完全透明共享的CPU/內存/硬盤,并行處理能力是最差的,典型代表就是SQL Server、單機版Oracle和MySQL,一般不考慮大規模的并發需求,架構比較簡單,一般的應用需求基本都能滿足。
2.?Shared Disk
各處理單元使用自己的私有CPU和Memory,共享磁盤系統。典型的代表是Oracle RAC、DB2 PureScale。例如Oracle RAC,他用的是共享存儲,做到了數據共享,可通過增加節點來提高并行處理的能力,擴展能力較好,使用Storage Area Network (SAN),光纖通道連接到多個服務器的磁盤陣列,降低網絡消耗,提高數據讀取的效率,常用于并發量較高的OLTP應用。其類似于SMP(對稱多處理)模式,但是當存儲器接口達到飽和的時候,增加節點并不能獲得更高的性能,同時更多的節點,則增加了運維的成本。
3.?Shared Nothing
各處理單元都有自己私有的CPU/內存/硬盤等,Nothing,顧名思義,不存在共享資源,類似于MPP(大規模并行處理)模式,各處理單元之間通過協議通信,并行處理和擴展能力更好。典型代表DB2 DPF、帶分庫分表的MySQL Cluster,各節點相互獨立,各自處理自己的數據,處理后的結果可能向上層匯總或在節點間流轉。
如果更準確地說,Shared Nothing架構又分為兩種,一種是分布式架構,將數據庫中的數據按照某一標準分布到多臺機器中,查詢或插入時按照條件查詢或插入對應的分區。另外一種是每一個節點完全獨立,節點之間通過網絡連接,通常是通過光纖等專用網絡。
我們常說的Sharding其實就是Shared Nothing,他是將某個表從物理存儲上被水平分割,并分配給多臺服務器(或多個實例),每臺服務器可以獨立工作,具備共同的schema,例如MySQL Proxy和Google的各種架構,只需增加服務器數就可以增加處理能力和容量。
隨著云計算、虛擬化的發展,這種架構的使用場景越來越多,例如雙十一購物、春運搶票、微博熱搜等,在Shared Nothing架構下,可以快速實現資源的擴容和收縮,這是Shared Everything和Shared Disk架構不具備的優勢。
但是凡事都得兩面看,帶來資源靈活性的同時,他對應用設計開發人員有可能提出了更高的要求,例如有些需要進行分區的,應用得配合改造,跨機訪問上,可能比單機,要考慮的更多。
上面提到的MPP,指的是大規模并行分析數據庫(Analytical Massively Parallel Processing (MPP) Databases),他是針對分析工作負載進行了優化的數據庫,一般需要聚合和處理大型數據集。MPP數據庫往往是列式的,因此MPP數據庫通常將每一列存儲為一個對象,而不是將表中的每一行存儲為一個對象。這種體系結構使復雜的分析查詢可以更快,更有效地處理。例如TeraData、Greenplum,GaussDB100、TBase。
近期更新的文章:
《關于數據治理的讀書筆記 - 數據治理路線圖規劃》
《Oracle優化器對謂詞順序處理的一個場景》
《究竟哪些語句是屬于DDL?》
《最近碰到的問題》
《關于數據治理的讀書筆記 - 數據治理能力成熟度評估》
文章分類和索引:
《公眾號900篇文章分類和索引》
總結
以上是生活随笔為你收集整理的三种数据库架构的介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【web素材】05—13款炫酷的HTML
- 下一篇: Active Directory 域滲透