MySql的儲存過程的優點與缺點

2021-09-21 17:55:21 字數 1165 閱讀 5579

總結下使用儲存過程的優缺點

儲存過程是一組預先建立並用指定的名稱儲存在資料庫伺服器上的 sql 語句,將使用比較頻繁或者比較複雜的操作,預先用 sql 語句寫好並儲存起來,以後當需要資料庫提供相同的服務時,只需再次執行該儲存過程。

1.具有更好的效能

儲存過程是預編譯的,只在建立時進行編譯,以後每次執行儲存過程都不需再重新編譯,而一般 sql 語句每執行一次就編譯一次,因此使用儲存過程可以提高資料庫執行速度。

2.功能實現更加靈活

儲存過程中可以應用條件判斷和游標等語句,有很強的靈活性,可以直接呼叫資料庫的一些內建函式,完成複雜的判斷和較複雜的運算。

3.減少網路傳輸

複雜的業務邏輯需要多條 sql 語句,當客戶機和伺服器之間的操作很多時,將產生大量的網路傳輸。如果將這些操作放在乙個儲存過程中,那麼客戶機和伺服器之間的網路傳輸就會減少,降低了網路負載。

4.具有更好的安全性

(1)資料庫管理人員可以更好的進行許可權控制,儲存過程可以遮蔽對底層資料庫物件的直接訪問,使用 execute 許可權呼叫儲存過程,無需擁有訪問底層資料庫物件的顯式許可權。

(2)在通過網路呼叫過程時,只有對執行過程的呼叫是可見的。無法看到表和資料庫物件名稱,不能嵌入sql 語句,有助於避免 sql 注入攻擊。

1.架構不清晰,不夠物件導向

儲存過程不太適合物件導向的設計,無法採用物件導向的方式將業務邏輯進行封裝,業務邏輯在儲存層實現,增加了業務和儲存的耦合,**的可讀性也會降低,

2.開發和維護要求比較高

儲存過程的編寫直接依賴於開發人員,如果業務邏輯改動較多,需要頻繁直接運算元據庫,大量業務降維到資料庫,很多異常不能在**中捕獲,出現問題較難排查,需要資料庫管理人員的幫助。

3.可移植性差

過多的使用儲存過程會降低系統的移植性。在對儲存進行相關擴充套件時,可能會增加一些額外的工作。

儲存過程與sql語句如何抉擇?

架構設計沒有絕對,只有在當前的場景下最合適的。

普通的專案開發中,不建議大量使用儲存過程,對比sql語句,儲存過程適用於業務邏輯複雜,比較耗時,同時請求量較少的操作,例如後台大批量查詢、定期更新等。

(1)當乙個事務涉及到多個sql語句時或者涉及到對多個表的操作時可以考慮應用儲存過程

(2)在乙個事務的完成需要很複雜的商業邏輯時可以考慮應用儲存過程

(3)比較複雜的統計和彙總可以考慮應用後台儲存過程

mysql 儲存過程 應用儲存過程的優點與缺點

總結下使用儲存過程的優缺點 一 儲存過程優點 儲存過程是一組預先建立並用指定的名稱儲存在資料庫伺服器上的 sql 語句,將使用比較頻繁或者比較複雜的操作,預先用 sql 語句寫好並儲存起來,以後當需要資料庫提供相同的服務時,只需再次執行該儲存過程。1.具有更好的效能 儲存過程是預編譯的,只在建立時進...

儲存過程的優點

1.儲存過程編輯器事先對儲存過程進行了語法檢查處理,避免了因sql語句語法不正確引起執行時出現異常的問題。2.使用儲存過程可提高資料庫執行的效率。這是因為在儲存儲存過程時,資料庫伺服器就已經對其進行了編譯,以後每次執行儲存過程都不需要再重新編譯,而一般的sql語句每執行一次就需要資料庫引擎重新編譯一...

儲存過程的優點

儲存過程 stored procedure 是在大型資料庫系統中,一組為了完成特定功能的sql 語句集,它儲存在資料庫中,一次編譯後永久有效,使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它。儲存過程是資料庫中的乙個重要物件。重複使用。儲存過程可以重複使用,從而可以減少資料庫...