在本教學中,您將學習MySQL儲存過程什麼以及其相關概念,並了解MySQL儲存過的優缺點。
儲存過程的定義
儲存過程是儲存在資料庫目錄中的一段宣告性SQL語句。 觸發器,其他儲存過程以及Java,Python,PHP等應用程式可以呼叫儲存過程。
自身的儲存過程稱為遞回儲存過程。大多數資料庫管理系統支援遞回儲存過程。 但是,MySQL不支援它。 在MySQL中實現遞回儲存過程之前,您應該檢查MySQL資料庫的版本。
在MySQL中儲存過程
MySQL是最受歡迎的開源RDBMS,被社群和企業廣泛使用。 然而,在它發布的第一個十年期間,它不支援儲存過程,儲存函式,觸發器和事件。自從MySQL 5.0版本以來,這些功能被新增到MySQL資料庫引擎,使其更加靈活和強大。
MySQL儲存過程的優點
- 通常儲存過程有助於提高應用程式的效能。當建立,儲存過程被編譯之後,就儲存在資料庫中。 但是,MySQL實現的儲存過程略有不同。 MySQL儲存過程按需編譯。 在編譯儲存過程之後,MySQL將其放入快取中。 MySQL為每個連線維護自己的儲存過程快取記憶體。 如果應用程式在單個連線中多次使用儲存過程,則使用編譯版本,否則儲存過程的工作方式類似於查詢。
- 儲存過程有助於減少應用程式和資料庫伺服器之間的流量,因為應用程式不必傳送多個冗長的SQL語句,而只能傳送儲存過程的名稱和引數。
- 儲存的程式對任何應用程式都是可重用的和透明的。 儲存過程將資料庫介面暴露給所有應用程式,以便開發人員不必開發儲存過程中已支援的功能。
- 儲存的程式是安全的。 資料庫管理員可以向存取資料庫中儲存過程的應用程式授予適當的許可權,而不向基礎資料庫表提供任何許可權。
除了這些優點之外,儲存過程有其自身的缺點,在資料庫中使用它們之前,您應該注意這些缺點。
MySQL儲存過程的缺點
- 如果使用大量儲存過程,那麼使用這些儲存過程的每個連線的記憶體使用量將會大大增加。 此外,如果您在儲存過程中過度使用大量邏輯操作,則CPU使用率也會增加,因為資料庫伺服器的設計不當於邏輯運算。
- 儲存過程的構造使得開發具有複雜業務邏輯的儲存過程變得更加困難。
- 很難偵錯儲存過程。只有少數資料庫管理系統允許您偵錯儲存過程。不幸的是,MySQL不提供偵錯儲存過程的功能。
- 開發和維護儲存過程並不容易。開發和維護儲存過程通常需要一個不是所有應用程式開發人員擁有的專業技能。這可能會導致應用程式開發和維護階段的問題。
MySQL儲存過程有自己的優點和缺點。開發應用程式時,您應該決定是否應該或不應該根據業務需求使用儲存過程。
在下面的教學中,我們將向您展示如何在資料庫程式設計任務中利用MySQL儲存過程與許多實際範例。