• 0

    MySQL數據庫架構方案

    jopen 12年前發布 | 84K 次閱讀 MySQL 數據庫服務器

    MySQL的同步相當簡單,但是怎么用好同步,根據業務需求為應用層提供高性能、高可用是一個值得探討的問題。下面討論一下幾個常見MySQL數據庫架構的優缺點。

    一、(多)單庫結構
    這個恐怕是最最簡單的一種方案了,完全沒有數據一致性問題。最大的缺點是無法容災,并且只能承受較小的壓力,不管壓力來自讀或者寫。不過在分布式數據層解 決方案目不暇接的今天,單庫結構可以拓展成多單庫結構來平分壓力。數據庫可以從業務上先進行垂直拆分,將關聯性較強的表放在一個庫中,將數據變化較小的表 也放在一個庫中;其次是將讀寫頻繁的表進行水平拆分,以某字段值為基礎,根據業務需求來選取適當的表路由算法。

    MySQL數據庫架構方案
    (多)單庫結構是除了環狀結構之外所有復雜結構的基礎,只有在此基礎上合理分布數據,才能為高性能打好基礎。其它數據庫結構,只是更好地拓展了(多)單庫結構而已。

    二、MS結構
    MS江湖人稱主備結構。優點有兩個,讀寫分離和實時備份。缺點也有兩個,數據一致性難以保障和切換麻煩。MS結構非常適合讀多寫少的應用場景(比如說論壇、博客)。

    MySQL數據庫架構方案
    從容災的角度講,主庫和備庫的一致性一定要保證。數據一致性不用多說,硬件配置和MySQL版本、各種參數配置最好都要一樣,這樣才能保證出問題時應用程 序能夠平滑地從主庫切換到備庫上。但是從性能角度來看,主備不一致某些時候是可以容忍的。比如說,主備庫上相同的表有不同的索引。此時將查詢條件不同的 select語句路由到相應的庫上去執行,應用得到結果集的時間將會大大縮短。

    三、MM結構
    MS的切換是個弱點,而且切換所帶來的麻煩會隨著備庫的增多而逐步上升。不過好在很多應用都不需要多個備庫的數據庫結構。如果備庫只是用來實時備份數據和承擔小部分讀壓力,那么MM結構將會是取代MS結構的不二之選。
    MM就是傳說中的主主結構。MM結構中的某一個庫加了read-only參數,用來確保一個時間點只存在一個可寫的數據庫。優點是切換迅速,在應用程序足夠強壯的前提下,甚至可以做到數據庫宕機時應用不停止服務。缺點也很明顯,拓展性不如MS結構強。

    MySQL數據庫架構方案

    四、復合結構
    在(多)單庫結構的時候我已經提到,目前流行的復雜結構數據庫全部是以(多)單庫結構為基礎,將單點替換為MS或MM結構而形成的。

    MySQL數據庫架構方案
    將(多)單庫結構進行一定程度的替換,我們就可以獲得目前流行的大部分MySQL架構了。
    MySQL數據庫架構方案
    在資金投入有限的情況下,DBA需要在高性能、高穩定、可拓展這三個要素中玩蹺蹺板。
    如何定位這個平衡點,還是要根據企業的現狀和業務要求進行具體分析。
     本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
     轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
     本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
  • sesese色