一号店拆库的那点事
系統剛開始的時候,因為系統剛上線,用戶不多,那個時候,所有的數據都放在了同一個數據庫中,這個時候因為用戶少壓力小,一個數據庫完全可以應付的了,但是隨著用戶數量變多了,隨之而來的是數據庫壓力增大了,這個時候我們會配置一個server為master節點,然后配幾個salve節點,這樣以來通過讀寫分離,使得讀取數據的壓力分攤到了不同的salve節點上面,有一天我們發現master負載太高了,隨時都有掛庫的風險,這個時候就需要垂直分庫,比如現有的產品庫,用戶庫,MISC庫,日志庫,還有未來的市場庫,同時還可以針對產品庫和用戶庫采用master,salve模式,通過分庫以后,各個按照功能拆分的數據庫寫壓力被分擔到了不同的server上面,這樣數據庫的壓力終于有恢復到正常狀態。隨著用戶量的不斷增加,你會發現系統中的某些表會變的異常龐大,比如現在的抵用券表,這個時候無論是寫入還是讀取這些表的數據,對數據庫來說都是一個很耗費精力的事情,因此此時就需要我們進行水平拆表了。將一張大表拆分成若干個小表,每次查詢通過給定的條件動態找表,這張針對小表的查詢就會快很多。
一個大型的互聯網應用必然會經過一個從單一DB server,到Master/salve,再到垂直分庫,然后再到水平分區(分表)的過程。
總結
- 上一篇: 极品js日期选择器
- 下一篇: 一个简单的网页制作作业,宠物html静态