資料庫分片

2021-08-10 10:50:11 字數 833 閱讀 1110

隨著網際網路的發展,資料的量級也是指數的增長,從

gb 到tb到

pb。對資料的各種操作也是愈加的困難,傳統的關係性資料庫已經無法滿足快速查詢與插入資料的需求。這個時候

nosql

的出現暫時解決了這一危機。它通過降低資料的安全性,減少對事務的支援,減少對複雜查詢的支援,來獲取效能上的提公升。

但是,在有些場合

nosql

一些折衷是無法滿足使用場景的,就比如有些使用場景是絕對要有事務與安全指標的。這個時候

nosql

肯定是無法滿足的,所以還是需要使用關係性資料庫。如果使用關係型資料庫解決海量儲存的問題呢?此時就需要做資料庫集群,為了提高查詢效能將乙個資料庫的資料分散到不同的資料庫中儲存。

簡單來說,就是指通過某種特定的條件,將我們存放在同乙個資料庫中的資料分散存放到多個資料庫(主機)上面,以達到分散單台裝置負載的效果。

資料的切分(

sharding

)根據其切分規則的型別,可以分為兩種切分模式。

(1)一種是按照不同的表(或者

schema

)來切分到不同的資料庫(主機)之上,這種切可以稱之為資料的垂直(縱向)切分

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

當資料庫分片後,資料由乙個資料庫分散到多個資料庫中。此時系統要查詢時需要切換不同的資料庫進行查詢,那麼系統如何知道要查詢的資料在哪個資料庫中?當新增一條記錄時要向哪個資料庫中插入呢?這些問題處理起來都是非常的麻煩。

這種情況下可以使用乙個資料庫中介軟體

mycat

來解決相關的問題。

資料庫分片

引用 分片 sharding 是一種與水平切分 horizontal partitioning 相關的資料庫架構模式 將乙個表裡面的行,分成多個不同的表的做法 稱為分割槽 每個區都具有相同的模式和列,但每個表有完全不同的行。同樣,每個分割槽中儲存的資料都是唯一的,並且與其他分割槽中儲存的資料無關。從...

資料庫分片技術

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

資料庫分片技術

垂直切?存放在同一目錄 資料中的的資料分散存放到多個資料庫 1.一種是按照不同的表 或者schema 來切分到不同的資料庫 主機 之上,這種切可以稱之為資料的垂直 縱向 切分 另外一種則是根據表中的資料的邏輯關係,將同乙個表中的資料按照某種條件拆分到多台資料庫 主機 上面,這種切分稱之為資料的水平 ...