文章目錄
- 前言
-
- 為什麼要進行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語句封裝起來
隻是儲存了資料結構,并不是真實的資料
好處:簡化操作 類似php代碼的封裝方法,把一條sql語句封裝起來
- 降低耦合
- 安全性=》針對程式員 比較适合一些政府結構,銀行項目 需要一些保密資訊較強的項目
- 缺點:
1.如果發生變化,視圖需要手動修改
2.觸發器=》針對寫的操作(insert delete update)
- 優點
1.日志記錄,資金流水 =》 銀行類型的項目
注意:項目當中類似觸發器的業務會很多,但是mysql的觸發器并不一定适用的多,代碼層面有很多方法可以代替
- 缺點
1.如果是批量操作就不适用,觸發器異常很難查找
3.存儲過程 (類似觸發器)不過可以使用變量等 更複雜的語句
對于mysql并不友好,sqlserver orcale sqlserver=》期望将所有的業務交由存儲過程來處理
- 優點
1.執行快(代碼執行快)-》預編譯-》第一次 運作存儲過程,第二次就不需要編譯了
2.減少網絡流量
- 缺點
1.不好維護
2.移植性很差,并且不好調試,也不易拓展
總結
- 這三個優化方法的一緻性:
優點,安全,保密性
從資料庫直接操作的,沒有經過程式處理
比較适合一些項目:政府機關,銀行