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