資料庫學習,資料庫
- 大規模並發
- 最佳化伺服器配置
- 使用負載平衡
- 資料庫結構設計
- 中介軟體最佳化
- 資料緩衝使用
- 資料庫高並發
- 資料庫設計建議
- 表設計的具體問題
- 查詢最佳化
- 注意事項
- 演算法最佳化
大規模並發
當網站有很多人訪問的時候,並發量增大,這個時候我們所設計的網站就會遇到挑戰。很多本來是沒有問題的設計,這個時候可能就會暴露出問題了。
就像宏觀物理定理不適合微觀一樣。
下面是一些最佳化的建議方法。
最佳化伺服器配置
這個是在硬體上提升伺服器,因為任何軟體上的最佳化都是有瓶頸和極限的,所以提高伺服器數量和配置是比較簡單也很有效解決辦法。假如效能不是很好,那麼就保證數量。最好再有一台作為冗餘的來保障伺服器的故障,提高魯棒性。
使用負載平衡
這個詞在現在很火,因為很多網站都在收集大量的資料,所以資料的並發量也很好。負載平衡是解決集中並發訪問的核心技術,也是一種比較有效方法。
主要裝置就是負載平衡伺服器,安裝負載平衡軟體,把大規模使用者產生的高並發均衡分流到各個伺服器上。
資料庫結構設計
這部分內容也很多,一般都是對資料庫結構,資料庫語句進行最佳化。下面我會詳細寫一下資料庫的最佳化方法。
中介軟體最佳化
這部分我接觸不多,當時也沒好好學。
如Apache, IIS, Tomact, WebLogin 這些都是中介軟體。
資料緩衝使用
緩衝是把資料庫的常用資料用Cache緩衝起來,減少伺服器重新請求的壓力。提高速度。
資料庫高並發
資料庫高並發的情況,要先找一下瓶頸所在。CPU還是IO還是網路。
所以我們可以有下面的一些解決方案:
- 提高網路頻寬
- 高效能的資料庫伺服器和Web伺服器
- 最佳化分頁存取資料
- 穩定高效能的資料庫訪問層
- 最佳化資料庫緩衝,多用記憶體緩衝的方式來處理資料
- 資料庫的索引最佳化
- 對交易處理的設計要嚴謹
- 記錄完成的動作記錄,容易定位錯誤。
- 增加負載平衡伺服器
- 最佳化前端代碼
- 考慮用壓縮方式傳輸HTML和Javascript代碼。
資料庫並發策略資料庫設計建議
這裡寫下我平時學的還有書上的一些知識,關於資料庫的一些設計簡易。
1. 多表設計。
2. 不要用自增屬性作為主鍵與子表進行關聯,不便於系統遷移和恢複。
表設計的具體問題查詢最佳化
放棄索引會進行全表掃描的操作
- 對NULL值進行判斷。( 預設值為0會改善 )
- 用!= 或者 <> 操作符
- 用or連結
注意事項演算法最佳化
盡量避免使用遊標,基於集的方法可能更有效。
建立高效的索引。
大型資料庫一般有兩種索引:簇索引和非簇索引。
沒有簇索引的表是按照堆結構儲存的。所資料添加在表的尾部。
一個表只有一個簇索引,資料在物理上是按照簇索引的順序儲存的(B樹結構)。提高查詢速度。會降低插入更新刪除操作的效能。
大致如上。學習筆記。