MySQL 9.0 发行说明
MySQL 支持存储例程(过程和函数)。存储例程是一组可以存储在服务器中的 SQL 语句。完成此操作后,客户端无需不断重新发出各个语句,而是可以引用存储例程。
存储例程在某些情况下特别有用
当多个客户端应用程序使用不同的语言编写或运行在不同的平台上,但需要执行相同的数据库操作时。
当安全性至关重要时。例如,银行会为所有常用操作使用存储过程和函数。这提供了一个一致且安全的环境,例程可以确保每个操作都正确记录。在这种设置中,应用程序和用户将无法直接访问数据库表,而只能执行特定的存储例程。
存储例程可以提高性能,因为需要在服务器和客户端之间发送的信息更少。权衡是,这会增加数据库服务器的负载,因为更多工作是在服务器端完成的,而客户端(应用程序)端完成的工作更少。如果许多客户端机器(例如 Web 服务器)仅由一个或几个数据库服务器提供服务,请考虑这一点。
存储例程还允许您在数据库服务器中拥有函数库。这是现代应用程序语言共享的功能,这些功能允许在内部进行这种设计(例如,通过使用类)。使用这些客户端应用程序语言功能即使在数据库使用范围之外对程序员也有益。
MySQL 遵循 SQL:2003 存储例程语法,IBM 的 DB2 也使用这种语法。此处描述的所有语法都受支持,并且在适当的情况下会记录任何限制和扩展。
其他资源
使用存储过程和函数时,您可能会发现 存储过程用户论坛 有用。
有关 MySQL 中存储例程的一些常见问题的答案,请参见 第 A.4 节,“MySQL 9.0 FAQ: Stored Procedures and Functions”。
使用存储例程有一些限制。请参见 第 27.9 节,“存储程序的限制”。
存储例程的二进制日志记录如 第 27.8 节,“存储程序二进制日志记录” 中所述进行。