資料庫學習,資料庫

來源:互聯網
上載者:User

資料庫學習,資料庫

  • 大規模並發
    • 最佳化伺服器配置
    • 使用負載平衡
    • 資料庫結構設計
    • 中介軟體最佳化
    • 資料緩衝使用
  • 資料庫高並發
    • 資料庫並發策略
  • 資料庫設計建議
    • 表設計的具體問題
    • 查詢最佳化
    • 注意事項
    • 演算法最佳化

大規模並發

當網站有很多人訪問的時候,並發量增大,這個時候我們所設計的網站就會遇到挑戰。很多本來是沒有問題的設計,這個時候可能就會暴露出問題了。

就像宏觀物理定理不適合微觀一樣。
下面是一些最佳化的建議方法。

最佳化伺服器配置

這個是在硬體上提升伺服器,因為任何軟體上的最佳化都是有瓶頸和極限的,所以提高伺服器數量和配置是比較簡單也很有效解決辦法。假如效能不是很好,那麼就保證數量。最好再有一台作為冗餘的來保障伺服器的故障,提高魯棒性。

使用負載平衡

這個詞在現在很火,因為很多網站都在收集大量的資料,所以資料的並發量也很好。負載平衡是解決集中並發訪問的核心技術,也是一種比較有效方法。

主要裝置就是負載平衡伺服器,安裝負載平衡軟體,把大規模使用者產生的高並發均衡分流到各個伺服器上。

資料庫結構設計

這部分內容也很多,一般都是對資料庫結構,資料庫語句進行最佳化。下面我會詳細寫一下資料庫的最佳化方法。

中介軟體最佳化

這部分我接觸不多,當時也沒好好學。
如Apache, IIS, Tomact, WebLogin 這些都是中介軟體。

資料緩衝使用

緩衝是把資料庫的常用資料用Cache緩衝起來,減少伺服器重新請求的壓力。提高速度。

資料庫高並發

資料庫高並發的情況,要先找一下瓶頸所在。CPU還是IO還是網路。
所以我們可以有下面的一些解決方案:

  • 提高網路頻寬
  • 高效能的資料庫伺服器和Web伺服器
  • 最佳化分頁存取資料
  • 穩定高效能的資料庫訪問層
  • 最佳化資料庫緩衝,多用記憶體緩衝的方式來處理資料
  • 資料庫的索引最佳化
  • 對交易處理的設計要嚴謹
  • 記錄完成的動作記錄,容易定位錯誤。
  • 增加負載平衡伺服器
  • 最佳化前端代碼
  • 考慮用壓縮方式傳輸HTML和Javascript代碼。
資料庫並發策略資料庫設計建議

這裡寫下我平時學的還有書上的一些知識,關於資料庫的一些設計簡易。
1. 多表設計。
2. 不要用自增屬性作為主鍵與子表進行關聯,不便於系統遷移和恢複。

表設計的具體問題查詢最佳化

放棄索引會進行全表掃描的操作

  • 對NULL值進行判斷。( 預設值為0會改善 )
  • 用!= 或者 <> 操作符
  • 用or連結
注意事項演算法最佳化

盡量避免使用遊標,基於集的方法可能更有效。
建立高效的索引。

大型資料庫一般有兩種索引:簇索引和非簇索引。

沒有簇索引的表是按照堆結構儲存的。所資料添加在表的尾部。

一個表只有一個簇索引,資料在物理上是按照簇索引的順序儲存的(B樹結構)。提高查詢速度。會降低插入更新刪除操作的效能。

大致如上。學習筆記。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.