mysql存储过程
来源:互联网 发布:unity3d怎么导入场景 编辑:程序博客网 时间:2024/06/17 18:43
在做项目的时候用了redis来进行数据的缓存,这让我想到了可以用mysql本身的存储过程来进行性能的提升。
//以下内容转自w3cschool
一、为什么使用存储过程
要了解为什么使用存储过程,我们先来看看我们在使用sql操作时的一个流程。下面这张图是截屏慕课网视频教程的图片。
通过查看上面的图片,我们不难看出在执行sql操作过程中的流程是要经过多个过程,如果我们的网站数据量比较小还好,如果大型网站,这样执行下来不久很慢了。如果我们能从中省略一些步骤或者说可以把一些查询到数据暂时存储起来,我们在下次使用的时候,就直接使用存储起来的数据,这样数据的加载就块很多了。这就是存储的目的。
二、存储过程的优势
1.增强sql语句的功能和灵活性
2.实现较快的查询(当我们第一次查询的时候就把数据存储起来,或者说将一些数据查询出来之后在存储,当我们再次调用的时候就直接使用上一次存储的数据,就避免了重复的去请求同一个操作)
3.较少网络流量(当我们将数据存储起来,避免多次加载重复的数据,这样对带宽的消耗也少了很多)
三、如何使用存储过程
1.创建存储过程
create procedure sp_name([[IN |OUT |INOUT ] 参数名 数据类形...]) begin 执行的sql语句1; 执行的sql语句2; end IN 输入参数表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值 OUT 输出参数该值可在存储过程内部被改变,并可返回 INOUT 输入输出参数调用时指定,并且可被改变和返回
示例代码:
1.不带参数 CREATE PROCEDURE sp_name() SELECT VERSION();2.带参数 CREATE PROCEDURE delbyId(IN id INT UNSIGNED) BEGIN DELETE FROM t_name WHERE u_id = id; END
2.删除存储过程
drop procedure sp_name
不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程
3.使用存储过程
1.call sp_name ([param])// 带参数2.call sp_name[(param)] // 不带参数
4.查询存储过程
show procedure statusshow create procedure sp_name
5.修改存储过程
不能修改存储体内的东西
6.通过函数和存储过程的对比,我们可以发现他们有共同之处,那我们该如何选择呢?
1.存储过程执行功能相对复杂,而函数针对性更强
2.函数只能有一个返回值,存储过程可以返回多个值
3.存储过程一般独立执行,而函数可以作为其他sql语句的组成部分来实现
举一个小例子:
create procedure xxx()
begin
select *from user;
end;
call xxx();
delete from user where username = 3;
call xxx();
drop procedure xxx;
show PROCEDURE status;
- 【mysql】mysql存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- 每日产品辣评:千万别轻易说你是诺粉,不是每一个人都能用6万美元买个相机
- Spring常用的三种注入方式
- 够快才畅快vivo X6&X6Plus畅快发布 售价2498起
- delphi FMX图像简单滤波(中值、均值、高斯)
- 【USACO】安全路径(计数/求和以及最值小探讨)(最有生成树之最短路径树,LCA,最值问题,并查集)
- mysql存储过程
- Purpose Of Multiple Graphs In Tensorflow
- Spring Boot系列04-AOP配置
- Java编程_兔子对数
- tf.nn.softmax_cross_entropy_with_logits
- 五年逆袭,腾讯手机管家如何从“零”到“一”
- 智能家庭网关将普及 捷稀推"骇客H3"深耕高端市场
- 畅享狂欢盛宴 电脑管家校园嘉年华圆满结束
- linq语句中多个记录合成一条记录