早前公司有個大系統沒有做資料的水平分割,導致興許的效能優化不能做到最佳,有些功能優化到7s,8s就無法繼續了。這個大系統曾經是分21個點部署,然後進行了大集中,僅僅部署了乙個點。
1. 在做資料的水平切割之前一定要理解系統的業務。我的系統是mis,資料能夠分為兩類:一類是基礎資料,一類是業務流程資料。基礎資料的理解就是支撐其它業務流轉的資料,如部門、人員、許可權、資源庫等。業務流程資料就是業務單據,如報銷流程等。
3. 分割的幾種方式,如果有限制有30個局的資料:
a. 分表
長處:安全性更高,mis系統上線後實施免不了要在後台改資料,萬一少寫乙個條件就悲劇了。對開發者的資料庫技能要求低一些,在1千萬的表上操作比在一億的表上操作要簡單。
缺點:做查詢的時候要組裝;在跨局做統計的時候實現會複雜一些。ddl操作要寫非常多指令碼。
b. 分割槽
長處:寫**簡單;跨局統計方便。
缺點:一定要確保帶分割槽條件,對開發者的資料庫操作技能更高。ddl(加欄位,改動字段型別或長度,加索引都是ddl)會比較困難,假設表上有操作,ddl都會失敗。跟分表的不同,
4. 終於的分割方式
分表:資料量巨大的表,安全性高的表。
單分割槽:非重點模組,資料量不大,無需做過期化。
復合分割槽:重點模組,須要做過期化的模組。
不做分割槽和分表:基礎資料。
毒性逆轉 水平分割。。
詳細解析可以參考 為了避免無窮計算,rip協議規定路由的最大metric為15跳,大於15跳表示網路不可達。這種規定限制的rip的應用範圍,它只能適用於中小網路,網路規模太大路由資訊就無法到達遠端的路由器了。同時,rip協議在實現中還使用了帶毒性逆轉的水平分割技術。所謂水平分割是指從某乙個鄰居獲得的...
BGP水平分割的疑惑
今天看到一條關於bgp水平分割問題的討論。主要癥結在這個地方 同樣是水平分割,在bgp和igp中都有 那麼 igp的水平分割 從某個介面上學習來的路由資訊將不再從該介面上通告出去。就是從那個口進來的不再從這個口出去。bgp的水平分割 從任何ibgp鄰居學來的路由資訊都不再向任何ibgp路由器 說白了...
表的垂直分割和水平分割
1,水平分割 例 qq的登入表。假設qq的使用者有100億,如果只有一張表,每個使用者登入的時候資料庫都要從這100億中查詢,會很慢很慢。如果將這一張表分成100份,每張表有1億條,就小了很多,比如qq0,qq1,qq1.qq99表。使用者登入的時候,可以將使用者的id 100,那麼會得到0 99的...