天天看點

mysql優化系列(一)- 前言前言一、什麼是性能優化?二、mysql視圖的基礎總結

文章目錄

  • 前言
    • 為什麼要進行mysql優化
  • 一、什麼是性能優化?
  • 二、mysql視圖的基礎
    • 1.視圖->主要針對查詢
    • 2.觸發器=》針對寫的操作(insert delete update)
    • 3.存儲過程 (類似觸發器)不過可以使用變量等 更複雜的語句
  • 總結

前言

為什麼要進行mysql優化

  • 避免網站頁面出現通路錯誤
1. 由于資料庫練級timeout産生頁面5xx錯誤
 2. 由于慢查詢造成頁面無法加載
 3. 由于阻塞造成資料無法送出
           
  • 增加資料庫的穩定性
1.很多資料庫問題都是由于低效的查詢引起的
 2.系統的吞吐量瓶頸往往出現在資料庫的通路速度上
 3.随着應用程式的運作,資料庫的中的資料會越來越多,處理時間會相應變慢
 4.資料是存放在磁盤上的,讀寫速度無法和記憶體相比
           
  • 優化使用者的體驗
1.流暢頁面的通路速度
 2.良好的網站功能體驗
           

一、什麼是性能優化?

不影響系統運作的情況下,去完成特定的工作

優化權重,越往上成本越高,效果越差

資料表 > sql語句 > 資料庫參數配置 > 硬體資源優化

二、mysql視圖的基礎

1.視圖->主要針對查詢

隻是儲存了資料結構,并不是真實的資料

好處:簡化操作 類似php代碼的封裝方法,把一條sql語句封裝起來

  1. 隻是儲存了資料結構,并不是真實的資料

    好處:簡化操作 類似php代碼的封裝方法,把一條sql語句封裝起來

  2. 降低耦合
  3. 安全性=》針對程式員 比較适合一些政府結構,銀行項目 需要一些保密資訊較強的項目
  • 缺點:
1.如果發生變化,視圖需要手動修改

2.觸發器=》針對寫的操作(insert delete update)

  • 優點
1.日志記錄,資金流水 =》 銀行類型的項目
注意:項目當中類似觸發器的業務會很多,但是mysql的觸發器并不一定适用的多,代碼層面有很多方法可以代替
  • 缺點
1.如果是批量操作就不适用,觸發器異常很難查找

3.存儲過程 (類似觸發器)不過可以使用變量等 更複雜的語句

對于mysql并不友好,sqlserver orcale sqlserver=》期望将所有的業務交由存儲過程來處理
  • 優點

1.執行快(代碼執行快)-》預編譯-》第一次 運作存儲過程,第二次就不需要編譯了

2.減少網絡流量

  • 缺點

1.不好維護

2.移植性很差,并且不好調試,也不易拓展

總結

  • 這三個優化方法的一緻性:

優點,安全,保密性

從資料庫直接操作的,沒有經過程式處理

比較适合一些項目:政府機關,銀行

繼續閱讀