在MySQL 5中,引入了存儲過程這一新特性,大大增強MYSQL的數據庫處理能力。在本文中將指導讀者快速掌握MySQL 5的存儲過程的基本知識,帶領用戶入門。
#### 存儲過程介紹
存儲過程是一組為了完成特定功能的SQL語句集,經編譯后存儲在數據庫中。用戶通過指定存儲過程的名字并給出參數(如果該存儲過程帶有參數)來執行它。存儲過程可由應用程序通過一個調用來執行,而且允許用戶聲明變量 。同時,存儲過程可以接收和輸出參數、返回執行存儲過程的狀態值,也可以嵌套調用。
#### 存儲過程的優點
作為存儲過程,有以下這些優點:
(1) **減少網絡通信量**。調用一個行數不多的存儲過程與直接調用SQL語句的網絡通信量可能不會有很大的差別,可是如果存儲過程包含上百行SQL語句,那么其性能絕對比一條一條的調用SQL語句要高得多。
(2)** 執行速度更快**。存儲過程創建的時候,數據庫已經對其進行了一次解析和優化。其次,存儲過程一旦執行,在內存中就會保留一份這個存儲過程,這樣下次再執行同樣的存儲過程時,可以從內存中直接中讀取。
(3) **更強的安全性**。存儲過程是通過向用戶授予權限(而不是基于表),它們可以提供對特定數據的訪問,提高代碼安全,比如防止 SQL注入。
(4) 業務邏輯可以封裝存儲過程中,這樣不僅**容易維護,而且執行效率也高**
當然存儲過程也有一些缺點,比如:
(1) **可移植性方面**:當從一種數據庫遷移到另外一種數據庫時,不少的存儲過程的編寫要進行部分修改。
(2) 存儲過程需要花費一定的學習時間去學習,比如學習其語法等。
在MySQL中,推薦使用MySQL Query Browswer(http://dev.mysql.com/doc/query-browser/en/)這個工具去進行存儲過程的開發和管理。下面分步驟來學習MYSQL中的存儲過程。
* * * * *
http://kb.cnblogs.com/page/107457/
http://www.studymysql.com/mysql/stored-procedure-tutorial.html?header
https://www.w3cschool.cn/mysql_developer/mysql_developer-6vk223fo.html