數據庫分片技術

垂直切🈹️  存放在同一目錄 數據中的的數據分散存放到多個數據庫 

  1. 1.一種是按照不同的表(或者Schema)來切分到不同的數據庫(主機)之上,這種切可以稱之爲數據的垂直(縱向)切分
  2. 另外一種則是根據表中的數據的邏輯關係,將同一個表中的數據按照某種條件拆分到多臺數據庫(主機)上面,這種切分稱之爲數據的水平(橫向)切分。

水平切割 把不同一張表存放在不同的數據中,解決單表數據過大的情況。

mycat 水平分割  解決 水平切割的問題:

cobar :阿里

schema 邏輯庫  與  mysql 中的 dabase 對應 

邏輯庫中定義了 的table

 table  表,

 

  1. 邏輯庫(schema)
    1. 數據庫中間件可以被看做是一個或多個數據庫集羣構成的邏輯庫。

 

  1. 邏輯表(table):
  2. 那麼就會有邏輯表,分佈式數據庫中,對應用來說,讀寫數據的表就是邏輯表。邏輯表,可以是數據切分後,分佈在一個或多個分片庫中,也可以不做數據切分,不分片,只有一個表構成
  3. 分片表:是指那些原有的很大數據的表,需要切分到多個數據庫的表,這樣,每個分片都有一部分數據,所有分片構成了完整的數據。 總而言之就是需要進行分片的表。

    非分片表:一個數據庫中並不是所有的表都很大,某些表是可以不用進行切分的,非分片是相對分片表來說的,就是那些不需要進行數據切分的表

  4. 分片節點(dataNode)
  5. 數據切分後,一個大表被分到不同的分片數據庫上面,每個表分片所在的數據庫就是分片節點(dataNode)。
  6. 節點主機(dataHost) 
  7. 數據切分後,每個分片節點(dataNode)不一定都會獨佔一臺機器,同一機器上面可以有多個分片數據庫,這樣一個或多個分片節點(dataNode)所在的機器就是節點主機(dataHost),爲了規避單節點主機併發數限制,儘量將讀寫壓力高的分片節點(dataNode)均衡的放在不同的節點主機(dataHost)。
  8. 分片規則(rule) 
  9. 個大表被分成若干個分片表,就需要一定的規則,這樣按照某種業務規則把數據分到某個分片的規則就是分片規則,數據切分選擇合適的分片規則非常重要,將極大的避免後續數據處理的難度。
  10.  
  11.  
  12. schema.xml
  13. Schema.xml作爲MyCat中重要的配置文件之一,管理着MyCat的邏輯庫、表、分片規則、DataNode以及DataSource。
  14. schema 標籤用於定義MyCat實例中的邏輯庫

    Table 標籤定義了MyCat中的邏輯表

    dataNode 標籤定義了MyCat中的數據節點,也就是我們通常說所的數據分片。

    dataHost標籤在mycat邏輯庫中也是作爲最底層的標籤存在,直接定義了具體的數據庫實例、讀寫分離配置和心跳語句。

      1. Server.xml介紹
  15. server.xml幾乎保存了所有mycat需要的系統配置信息。最常用的是在此配置用戶名、密碼及權限。

    1. rule.xml
    2. rule.xml裏面就定義了我們對錶進行拆分所涉及到的規則定義。我們可以靈活的對錶使用不同的分片算法,或者對錶使用相同的算法但具體的參數不同。這個文件裏面主要有tableRule和function這兩個標籤。在具體使用過程中可以按照需求添加tableRule

       

    3. 和function。MySQL來說,標準的讀寫分離是主從模式,一個寫節點Master後面跟着多個讀節點,讀節點的數量取決於系統的壓力,通常是1-3個讀節點的配置

  16. Mycat讀寫分離和自動切換機制,需要mysql的主從複製機制配合

    1. Mysql的主從複製 數據同步 binlog 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章