MySQL存储过程和Function

一、存储过程

MySQL中提供存储过程存储函数机制,将其统称为存储程序

SQL语句要先编译,然后执行,存储程序是一组为了完成特定功能的SQL语句,编译后存到数据库中。

用户通过指定存储程序的名字并给定参数来调用才会执行。

存储程序的优点:

1.存储过程能提高应用程序的性能。存储过程被编译后存储在数据库中。

2.编译存储过程之后,MySQL将其放入缓存中。存储过程可以减少应用和服务器之间的流量,应用不用发送多个冗长的SQL语句,只需要发送存储过程的名称和参数。

缺点:

1.若大量使用存储过程,使用存储过程的每个连接的内存使用量会很大。

如果在存储过程中使用大量逻辑操作,CPU使用率也会增加。

2.不能调试存储过程,只有少数数据库管理系统允许调试存储过程。

MySQL不提供调试存储过程的功能。

3.公司开发中不使用存储过程,分析三层架构,业务逻辑一般放到业务层,也就是Tomcat,而不是把业务放到数据库处理。
使用存储过程使业务和数据库严重耦合。

4.对于业务层性能扩容的手段有很多,搭建集群、使用缓存提高响应速度等。

大多数情况下,业务层并不是整个项目性能的瓶颈,而是数据库。

业务层性能扩容相比数据库性能扩容方便的多。

所以通常尽可能优化数据库性能,降低数据层压力。

存储过程的使用

1.语法

CREATE PROCEDURE procedure_name([parmeters[...]])
begin
--SQL语句
end;

2.举例

create procedure test()
begin
	select 'Hello';
end;

3.调用 存储过程

call test();

二、MySQL的Function

MySQL中,Function(函数)是一种被定义在数据库中并可以在SQL查询中调用的可重用代码块

MySQL支持用户自定义函数,用户可以根据需求创建函数执行特定任务。

Function(函数)的特点:

1.函数是一段封装好的SQL代码,接收输入参数并返回单一的值
2.函数可用来简化复杂的SQL查询、计算和数据处理操作。
3.函数可以作为查询中的表达式使用,也可以在其他SQL语句中调用。
4.函数提供了代码重用的机制,可以减少重复编码。

MySQL中,可以用CREATE FUNCTION语句创建函数。

CREATE FUNCTION function_name(parameter_list)
RETURNS return_type
BEGIN 
	--函数体,包含具体的SQL代码
END;

比如,创建一个Function计算两个数字的和:

CREATE FUNCTION calculate_sum(a INT, b INT)
RETURNS INT
BEGIN
	DECLARE result INT;
	SET result = a + b;
	RETURN result;
END;

创建Function(函数)后,可以通过SELECT语句调用该函数

SELECT calculate_sum(5,3);-- 调用calculate_sum函数计算5和3的和
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你小汁完了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值