MySQL 9.0 發行說明
MySQL 支援預存程序(程序與函數)。預存程序是一組可以儲存在伺服器中的 SQL 陳述式。一旦完成此動作,用戶端就不需要重複發出個別的陳述式,而是可以參考預存程序。
預存程序在某些情況下特別有用
當多個用戶端應用程式以不同語言撰寫或在不同平台上運作,但需要執行相同的資料庫操作時。
當安全性至關重要時。例如,銀行會使用預存程序和函數來執行所有常見操作。這提供了一致且安全的環境,並且程序可以確保每個操作都被正確記錄。在這種設定中,應用程式和使用者無法直接存取資料庫表格,而只能執行特定的預存程序。
預存程序可以提高效能,因為伺服器與用戶端之間需要傳送的資訊較少。缺點是這會增加資料庫伺服器的負載,因為更多工作在伺服器端完成,而在用戶端(應用程式)端完成的工作較少。如果只有一個或少數幾個資料庫伺服器服務許多用戶端機器(例如網頁伺服器),請考慮這一點。
預存程序還允許您在資料庫伺服器中建立函數庫。這是現代應用程式語言共有的功能,這些語言允許在內部進行這種設計(例如,使用類別)。即使在資料庫使用的範圍之外,使用這些用戶端應用程式語言功能也對程式設計人員有益。
MySQL 遵循 SQL:2003 的預存程序語法,IBM 的 DB2 也使用此語法。此處描述的所有語法都受到支援,任何限制和擴充都會在適當的地方加以說明。
其他資源
您在處理預存程序和函數時,可能會發現預存程序使用者論壇很有用。
如需有關 MySQL 中預存程序的一些常見問題的解答,請參閱第 A.4 節「MySQL 9.0 FAQ:預存程序與函數」。
預存程序的使用有一些限制。請參閱第 27.9 節「預存程式的限制」。
預存程序的二進制記錄如第 27.8 節「預存程式二進制記錄」所述。