MySQL 存储过程详解:预编译 SQL 的高效应用
存储过程(Stored Procedure)是一组预先编译好的 SQL 语句集合,存储在数据库中,可通过名称直接调用。它能简化复杂操作、提高代码重用性,并减少数据库交互次数,是提升数据库性能的重要工具。
存储过程的核心优势
- 代码重用:一次定义,多次调用,避免重复编写相同 SQL。
- 减少网络交互:将多步 SQL 合并为一个存储过程,减少与数据库的连接次数。
- 提高安全性:可通过权限控制存储过程的调用,限制直接访问表的权限。
- 预编译优化:创建时编译一次,后续调用无需重新编译,提升执行效率。
存储过程的基本语法
创建存储过程
1 | -- 语法 |
参数列表格式:
参数由 “参数模式 + 参数名 + 数据类型” 组成,支持三种模式:
IN:输入参数(调用时需传入值)。OUT:输出参数(作为返回值,需用用户变量接收)。INOUT:既作为输入,也作为输出。
调用存储过程
1 | CALL 存储过程名(参数列表); -- 参数列表需与定义时的顺序和模式匹配 |