資料庫拆分原則

2021-08-25 11:20:07 字數 871 閱讀 4406

隨著使用者量的budu不斷提公升,對**應用的併發量也將不斷增高。這將會導致應用卡頓延遲,更嚴重甚至會導致系統整個崩潰。而解決這種情況的發生,下意識便是如何降低使用者對系統資料的讀操作。

1、採用redis,memcache等快取技術,降低對資料庫的讀操作。

2、其次可以考慮進行資料庫的讀寫分離操作

3、當我們使用快取,以及資料庫的讀寫分離之後,資料庫的壓力還是很大的時候,這時候就要考慮一下資料庫的拆分。

垂直拆分:

垂直拆分是通過業務將不同的表分類,分布到不同的資料庫上面。這就能將資料庫的總體壓力平攤下去。**就是通過業務分成交易資料庫,使用者資料庫,支付資料庫。甚至會更加的細分文字資訊用mongdb等

優點:1. 拆分後業務清晰,拆分規則明確。

2. 系統之間整合或擴充套件容易。

3. 資料維護簡單。

缺點:1. 部分業務表無法join,只能通過介面方式解決,提高了系統複雜度。

2. 受每種業務不同的限制存在單庫效能瓶頸,不易資料擴充套件跟效能提高。

3. 事務處理複雜。

水平拆分:

垂直拆分後遇到單機瓶頸,可以使用水平拆分。相對於垂直拆分的區別是:垂直拆分是把不同的表拆到不同的資料庫中,而水平拆分是把同乙個表拆到不同的資料庫中。

分庫分表需要涉及到對應的sql路由規則主庫備庫等,例如:**設計了一套tddl來解決這些問題,應用端只需配置對應的規則即可,對應用端的沒有任何侵入的設計。 

水平拆分,總之,一般先分庫,如果分庫後查詢仍然慢,於是按照分庫的思想開始做分表的工作資料庫採用分布式資料庫(所有節點的資料加起來才算是整體資料),檔案系統採用分布式檔案系統任何強大的單一伺服器都滿足不了大型系統持續增長的業務需求,資料庫讀寫分離隨著業務的發展最終也將無法滿足需求,需要使用分布式資料庫及分布式檔案系統來支撐。

資料庫拆分

一 水平切分是指,以某個欄位為依據 例如id 按照一定規則 例如取模 將乙個庫 表 上的資料拆分到多個庫 表 上,以降低單庫 表 大小,達到提公升效能的目的的方法,水平切分後,各個庫 表 的特點是 1 每個庫 表 的結構都一樣 2 每個庫 表 的資料都不一樣,沒有交集 3 所有庫 表 的並集是全量資...

資料庫拆分

1.第一步 採用分布式快取redis memcached等降低對資料庫的讀寫操作 2.第二步 如果快取使用過後,資料庫訪問量還是非常大,可以考慮資料庫讀寫分離原則。3.第三步 當我們使用讀寫分離 快取後 資料庫的壓力還是很大的時候,這就需要使用資料庫的拆分了。乙個資料庫由很多表構成,每個表對應著不同...

資料庫拆分

資料庫水平垂直拆分 當資料庫量非常大的時候,db已經成為系統瓶頸時就可以考慮進行水平垂直拆分了。水平拆分 一般水平拆分是根據表中的某乙個字段 主鍵id 進行取模處理,將表中的資料拆到多張表裡,這樣每張表的結構相同但資料不同。不但可以根據id取模分表也可以按時間分表,比如每月生成一張表。按照範圍分表也...