MySQL 8.4 Reference Manual  /  Stored Objects  /  Using Stored Routines

27.2 使用存储例程

MySQL 支持存储例程(存储过程和函数)。存储例程是一组 SQL 语句,可以在服务器上存储。完成后,客户端不需要重新发送单个语句,而是可以引用存储例程。

存储例程在某些情况下特别有用:

  • 当多个客户端应用程序使用不同的语言或平台,但需要执行相同的数据库操作时。

  • 当安全性非常重要。例如,银行使用存储过程和函数来执行所有常见操作。这提供了一个一致和安全的环境,存储例程可以确保每个操作都被正确记录。在这种情况下,应用程序和用户不能直接访问数据库表,而只能执行特定的存储例程。

存储例程可以提高性能,因为需要发送的信息减少了。然而,这也增加了数据库服务器的负载,因为更多的工作是在服务器端完成,而不是在客户端(应用程序)端。考虑到这个问题,如果有许多客户机(例如 Web 服务器)由一个或几个数据库服务器服务。

存储例程还允许在数据库服务器上拥有函数库。这是现代应用语言中的一种特性,用于在数据库中实现类似设计(例如,使用类)。使用这些客户端应用语言特性对程序员非常有益,即使在数据库外。

MySQL遵循 SQL:2003 语法来实现存储例程,这也是 IBM 的 DB2 使用的语法。所有语法都被支持,任何限制和扩展都在适当的地方被记录。