23.2 使用存储的例程

MySQL 支持存储的例程(过程和函数)。存储的例程是一组可以存储在服务器中的 SQL 语句。完成此操作后,Client 无需 continue 重新发出各个语句,而可以引用存储的例程。

存储的例程需要mysql数据库中的proctable。该 table 是在 MySQL 安装过程中创建的。如果您要从早期版本升级到 MySQL 5.7,请确保更新您的授权 table 以确保proctable 存在。参见第 4.4.7 节“ mysql_upgrade-检查和升级 MySQLtable”

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

  • 当多个 Client 端应用程序以不同的语言编写或在不同的平台上工作时,需要执行相同的数据库操作。

  • 当安全至上时。例如,银行将存储过程和函数用于所有常见操作。这提供了一致且安全的环境,例程可以确保正确记录每个操作。在这种设置中,应用程序和用户将无法直接访问数据库 table,而只能执行特定的存储例程。

存储的例程可以提高性能,因为在服务器和 Client 端之间需要发送的信息较少。折衷方案是,这确实会增加数据库服务器的负载,因为更多的工作在服务器端完成,而较少的工作在 Client 端(应用程序)端完成。如果仅一台或几台数据库服务器为许多 Client 端计算机(例如 Web 服务器)提供服务,请考虑此问题。

存储的例程还使您能够在数据库服务器中具有函数库。这是现代应用程序语言共享的一项功能,可在内部启用这种设计(例如,通过使用类)。即使在数据库使用范围之外,使用这些 Client 端应用程序语言功能对程序员也是有益的。

MySQL 遵循存储例程的 SQL:2003 语法,IBM 的 DB2 也使用该语法。支持此处描述的所有语法,并在适当的地方记录了所有限制和扩展。

Additional Resources