海量數據存儲的解決方案(分布式數據庫)


一、大型互聯網系統數據的存儲處理






解釋:主庫集群並不能解決並發寫的壓力

​ 因為是一個集群,集群上的每一個節點上面存的數據是要保證是一樣的。在任何一台節點上去插入一條數據,最終這些數據都要同步到集群的各個節點上面去的,也就是說個個節點上面的也會進行一次寫操作,所以並沒有起到緩解的作用。

​ 帶來負面的影響:1.數據庫的一致性,2.主鍵唯一性的問題



分區表和分表:
​ 優先選擇的是分區表,評估一下數據的量,有沒有超出單個庫的處理能力,如果沒有,完全可以采用分區表的這種方式來做,因為使用分區表呢,就把處理數據的難度就交給了數據庫自身來處理了。

​ 分區表是只能在單個庫里,對一個表進行分區的,那么如果並發的壓力超過了單個庫的處理能力,就要考慮使用分表策略了,

​ 分表:指一個數據庫中的某個表數據量特別大,把它拆成多個表,放到多個庫上面去,分散他們的壓力。

​ 分表的規則:

​ 1.范圍分區:適合於數值型的/時間型的就可以使用范圍分區

​ 2.列表分區:比如:類型為字符串,有限個枚舉這類的,如城市 就可以使用列表分區

​ 3.散列分區:不具備 1.2特點的,考慮用散列分區,對這個值求哈希值,然后用這個值去求余或其他等操作選擇合適的表

​ 4.復合分區:是對1,2,3的綜合使用

數據庫中間件:能夠幫我們屏蔽掉后段數據存儲的變化帶來對上層代碼的影響,

總結:

[注]:分布式數據庫:就是Mysql數據庫構成的,分庫,分表的,讀寫分離的集群

二、方案選型

1.數據庫中間件的兩種實現模式:

客戶端模式:吃內存(與應用爭內存),不適用海量數據的存儲,但是適用於高並發的場景

2.常用的數據庫中間件


三、分布式數據庫原理、技術難點

1.數據庫拆分:











四、高級技能


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM