• 首页
  • css3教程
  • html5教程
  • jQuery手册
  • php7教程
  • MySQL手册
  • apache手册
  • 位置: MySQL8中文手册 -> 存储的对象

    MySQL存储例程(过程和函数)

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

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

    • 当多个客户端应用程序以不同的语言编写或在不同的平台上工作时,但需要执行相同的数据库操作。
    • 当安全至上时。例如,银行将存储过程和函数用于所有常见操作。这提供了一致且安全的环境,例程可以确保正确记录每个操作。在这种设置中,应用程序和用户将无法直接访问数据库表,而只能执行特定的存储例程。

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

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

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

    其他资源

    • 使用存储过程和功能时,您可能会找到使用存储过程用户论坛。
    • 有关MySQL中存储例程的一些常见问题的答案,请参见第A.4节“ MySQL 8.0 FAQ:存储过程和函数”。
    • 使用存储例程有一些限制。请参见“对存储程序的限制”。
    • 如“存储的程序二进制日志记录”所述,对存储的例程进行二进制日志记录。