1. 單機變集羣數據庫
2. 數據庫分庫分表、讀寫分離緩存
常見的分庫分表:併發
(1)垂直分表:異步
通俗的說就是「大表拆小表」。拆分是基於關係型數據庫中的「列」(字段)進行的。一般狀況,某個表中的字段比較多,能夠新創建一張「擴展表」,將不常常使用或者長度較大的字段拆分出去放到「擴展表」中。微服務
(2)垂直分庫:性能
在「微服務」盛行的今天已經很是普及了。基本的思路就是按照業務模塊來劃分出不一樣的數據庫,而不是像早期同樣將全部的數據表都放到同一個數據庫中。優化
(3)水平分表:中間件
水平分表也稱爲橫向分表,比較容易理解,就是將表中不一樣的數據行按照必定規律分佈到不一樣的數據庫表中(這些表保存在同一個數據庫中),這樣來下降單表數據量,優化查詢性能。最多見的方式就是經過主鍵或者時間等字段進行 Hash 和取模後拆分。同步
(4)水平分庫分表:集羣
水平分庫分表與上面講到的水平分表的思想相同,惟一不一樣的就是將這些拆分出來的表保存在不一樣的數據中。這也是不少大型互聯網公司所選擇的作法。
3. 加入緩存
4. 加入消息中間件,將同步請求異步處理
基本採用以上的幾個思路均可以達到減小數據庫併發請求的目的,不少時候系統崩潰也都是從數據庫開始,這裏要特別注意有時候硬盤滿了也會形成數據庫鏈接數佔滿的狀況,
因此必定要作好實時監控好硬盤狀態,這個通常運營商也都有這個服務。