天天看點

5.高性能資料庫叢集5.高性能資料庫叢集

5.高性能資料庫叢集

1.高性能資料庫叢集:讀寫分離

讀寫分離的原理:
    讀寫分離的基本原理是将資料庫讀寫操作分散到不同的節點上
讀寫分離的基本實作是:
    資料庫伺服器搭建主從叢集 一主一從 一主多從都可以
    資料庫主機負責讀寫操作 從機隻負責讀操作
    資料庫主機通過複制将資料同步到從機 每台資料庫伺服器都存儲了所有的業務資料
    業務伺服器将寫操作發送給資料庫主機 将讀操作發送給資料庫從機
存在問題:主從複制延遲 
    (例如:使用者剛剛完成注冊後 馬上登陸,業務伺服器會提示他還沒有注冊 而使用者剛剛才注冊)
    解決主從複制延遲的方法有以下幾個:
        1.寫操作後的讀操作指定發送給資料庫主伺服器
        2.讀從機失敗後再讀一次主機
        3.關鍵業務讀寫操作全部指向主機 非關鍵業務采用讀寫分離
配置設定機制:将讀寫操作區分開來 然後通路不同的資料庫伺服器一般有兩種方式:
    程式代碼封裝和中間件封裝
    程式代碼封裝:程式代碼封裝指的是在代碼中抽象一個資料通路層("中間層封裝")
        實作讀寫操作分離和資料庫伺服器連接配接的管理,
    中間件封裝:中間件封裝指的是獨立一套系統出來 
        實作讀寫操作分離和資料庫伺服器連接配接的管理
           

2.高性能資料庫叢集:分庫分表

業務分庫:業務分庫指的是按照業務子產品将資料分散到不同的資料庫伺服器
實行業務分庫後存在的問題:
    1.join操作問題:
        業務分庫後 原本在同一個資料庫中的表分散到不同的資料庫中
        導緻無法使用SQL的join查詢。
    2.事務問題:
        原本在同一個資料庫中不同的表可以在同一事務中修改
        業務分庫後 表被分散到不同的資料庫中 無法通過事務統一修改。
        雖然一些資料庫廠商提供了一些分布式事務的解決方案(例如:MySQL的XA)
       但是性能實在太低 與高性能存儲的目标是相違背的 
   3.成本問題
分表方式:垂直分表 水準分表