在MySQL开发中,很多新手会分不清存储过程、函数、触发器三者的定位。前面我们已经学习过MySQL触发器、普通查询SQL,今天我们单独把存储过程讲透,从概念、优缺点、基础语法、实战样例,
|
在MySQL开发中,很多新手会分不清存储过程、函数、触发器三者的定位。前面我们已经学习过MySQL触发器、普通查询SQL,今天我们单独把存储过程讲透,从概念、优缺点、基础语法、实战样例,再到使用场景与避坑点,全部一次性梳理清楚。 一、什么是存储过程存储过程(Stored Procedure)是一组预先编译好的SQL语句集合,存放在MySQL数据库内部。 它和普通SQL最大区别:普通SQL每次执行都需要客户端发送、数据库解析编译;存储过程提前编译保存在服务端,调用时直接执行。
二、存储过程有什么作用
三、优缺点分析? 优点
? 缺点
四、基础语法与实战示例语法模板
参数类型说明:
示例1:无参数存储过程沿用前面的学生表,查询所有及格学生:
示例2:带IN输入参数根据分数阈值,查询大于该分数的学生:
示例3:IN+OUT,带输出参数传入分数下限,返回符合条件的总人数
五、结合我们爬虫业务的实战样例结合上一节spider.information表,封装一个存储过程:查询指定数据源列表、标题匹配年报ESG关键词、近5年(time可为null)的数据。
如果想要支持动态传入关键词,可以改成带IN参数版本,灵活传入检索关键词。 六、常用管理命令
七、适用场景与不推荐场景? 适合使用存储过程:
? 不推荐使用:
八、避坑要点
小结存储过程本质就是SQL脚本封装。在运维统计、固定报表场景非常好用,就像我们爬虫报表检索的例子,一次封装,反复调用。但在现代Web业务开发中,不要盲目把业务逻辑全部下沉到数据库,要权衡维护成本和性能收益。 |
2021-06-02
2021-06-05
2022-06-27
2024-07-31
2024-02-19