資料庫分片技術

2021-10-03 10:01:37 字數 2036 閱讀 5344

垂直切?️  存放在同一目錄 資料中的的資料分散存放到多個資料庫 

1.一種是按照不同的表(或者schema)來切分到不同的資料庫(主機)之上,這種切可以稱之為資料的垂直(縱向)切分

另外一種則是根據表中的資料的邏輯關係,將同乙個表中的資料按照某種條件拆分到多台資料庫(主機)上面,這種切分稱之為資料的水平(橫向)切分。

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

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

cobar :阿里

schema 邏輯庫  與  mysql 中的 dabase 對應 

邏輯庫中定義了 的table

table  表,

邏輯庫(schema)資料庫中介軟體可以被看做是乙個或多個資料庫集群構成的邏輯庫。

邏輯表(table):那麼就會有邏輯表,分布式資料庫中,對應用來說,讀寫資料的表就是邏輯表。邏輯表,可以是資料切分後,分布在乙個或多個分片庫中,也可以不做資料切分,不分片,只有乙個表構成

分片表:是指那些原有的很大資料的表,需要切分到多個資料庫的表,這樣,每個分片都有一部分資料,所有分片構成了完整的資料。 總而言之就是需要進行分片的表。

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

分片節點(datanode)資料切分後,乙個大表被分到不同的分片資料庫上面,每個表分片所在的資料庫就是分片節點(datanode)。

節點主機(datahost)資料切分後,每個分片節點(datanode)不一定都會獨佔一台機器,同一機器上面可以有多個分片資料庫,這樣乙個或多個分片節點(datanode)所在的機器就是節點主機(datahost),為了規避單節點主機併發數限制,盡量將讀寫壓力高的分片節點(datanode)均衡的放在不同的節點主機(datahost)。

分片規則(rule)個大表被分成若干個分片表,就需要一定的規則,這樣按照某種業務規則把資料分到某個分片的規則就是分片規則,資料切分選擇合適的分片規則非常重要,將極大的避免後續資料處理的難度。

schema.xmlschema.xml作為mycat中重要的配置檔案之一,管理著mycat的邏輯庫、表、分片規則、datanode以及datasource。

schema 標籤用於定義mycat例項中的邏輯庫

table 標籤定義了mycat中的邏輯表

datanode 標籤定義了mycat中的資料節點,也就是我們通常說所的資料分片。

datahost標籤在mycat邏輯庫中也是作為最底層的標籤存在,直接定義了具體的資料庫例項、讀寫分離配置和心跳語句。

server.xml介紹

server.xml幾乎儲存了所有mycat需要的系統配置資訊。最常用的是在此配置使用者名稱、密碼及許可權。

rule.xmlrule.xml裡面就定義了我們對錶進行拆分所涉及到的規則定義。我們可以靈活的對錶使用不同的分片演算法,或者對錶使用相同的演算法但具體的引數不同。這個檔案裡面主要有tablerule和function這兩個標籤。在具體使用過程中可以按照需求新增tablerule

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

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

mysql的主從複製 資料同步 binlog

資料庫分片技術

假如您有乙個應用程式,隨著業務越來越有起色,系統所牽涉到的資料量也就越來越大,此時您要涉及到對系統進行伸縮 scale 的問題了。一種典型的擴充套件方法叫做 向上伸縮 scale up 它的意思是通過使用更好的硬體來提高系統的效能引數。而另一種方法則叫做 向外伸縮 scale out 它是指通過增加...

MySQL資料庫分片技術調研

將這段時間了解的mysql分片技術和主從複製只是整理清楚畫了思維導圖記錄一下,希望能給需要的人一些幫助 1 海量資料的操作超出單錶 單庫的最大限制 2 訪問壓力超出資料庫系統限制,效能下降 3 資料庫複製 容災等問題 一 採用資料分表分庫提高資料庫的效能限制 1 可選sharding策略 2 sha...

資料庫分片

隨著網際網路的發展,資料的量級也是指數的增長,從 gb 到tb到 pb。對資料的各種操作也是愈加的困難,傳統的關係性資料庫已經無法滿足快速查詢與插入資料的需求。這個時候 nosql 的出現暫時解決了這一危機。它通過降低資料的安全性,減少對事務的支援,減少對複雜查詢的支援,來獲取效能上的提公升。但是,...