MySQL 8.0发行说明
MySQL 8.0源代码文档10bet官方网站
MySQL支持存储的例程(过程和函数)。存储的例程是一组可以存储在服务器中的SQL语句集。一旦完成了,客户端无需继续重新发出各个语句,而且可以指代存储的例程。
存储的例程在某些情况下可能特别有用:
当多个客户端应用程序用不同的语言写入或在不同的平台上工作时,但需要执行相同的数据库操作。
当安全是至关重要的。例如,银行使用存储过程和函数来满足所有常见操作。这提供了一致和安全的环境,并且例程可以确保每个操作都正确记录。在这样的设置中,应用程序和用户无法直接访问数据库表,但只能执行特定的存储例程。
存储的例程可以提供改进的性能,因为需要在服务器和客户端之间发送较少的信息。权衡是,这确实会增加数据库服务器上的负载,因为更多的工作在服务器端完成,并且在客户端(应用程序)方面少完成。如果许多客户机(例如Web服务器)仅由一个或几个数据库服务器提供服务,请考虑此操作。
存储的例程还使您可以在数据库服务器中具有函数的库。这是由现代应用语言共享的功能,该功能可以在内部(例如,使用类)实现此类设计。使用这些客户端应用程序语言功能对于程序员来说,即使在数据库使用范围之外也是有益的。
MySQL遵循SQL:2003用于存储例程的语法,也由IBM的DB2使用。此处描述的所有语法都受到支持,并且在适当的情况下记录任何限制和扩展。
额外资源
你可能会找到存储过程用户论坛使用存储过程和功能时使用。
有关一些关于MySQL中存储例程的一些常见问题的答案,请参阅第A.4节“MySQL 8.0常见问题解答:存储过程和功能”。
使用存储的例程存在一些限制。看第25.8节“限制存储计划”。
如上所述,将用于存储例程的二进制日志记录第25.7节“存储程序二进制记录”。