博客
关于我
Mysql_存储过程
阅读量:110 次
发布时间:2019-02-26

本文共 1233 字,大约阅读时间需要 4 分钟。

存储过程详解

一、概述

存储过程是一组用于完成特定功能的SQL语句集合。在MySQL中,从5.0版本开始支持存储过程,其优势在于可以提高数据库处理速度,增强数据库的灵活性。通过将复杂或常用的操作预先编译并存储,可以在需要时直接调用,减少客户端的负载。

二、简介

存储过程是将多条SQL语句以特定名称存储到数据库中的功能模块。其体积较小,执行效率高,适合处理复杂的数据库操作。与传统的存储过程不同,MySQL支持存储过程,可以在客户端和服务器端分别发挥作用。

三、优点

1. 提高执行效率

存储过程在第一次调用后会被编译并存储在服务器段,二进制化的代码缓存大幅度减少了执行时间。

2. 灵活性高

通过将SQL语句与控制语句结合,可以实现更复杂的逻辑操作,灵活性远超普通的SQL语句。

3. 减少网络负载

存储过程在服务器端执行,减少了客户端与数据库之间的数据传输量,提升了整体系统性能。

4. 可重复调用与维护

存储过程可以多次调用,不影响其他用户,且可以随时修改或删除,无需重启数据库。

5. 控制访问权限

通过存储过程可以对数据库操作进行严格控制,确保数据安全性。

四、示例

1. 创建不带参数的存储过程

delimiter $$create procedure cc()begin    create table mk (        id int(10),        name char(10),        score int(10)    );    insert into mk values (1, 'wang', 13);    select * from mk;end $$delimiter ;call cc();

2. 创建带参数的存储过程

delimiter $$create procedure getrole(in inname varchar(16))begin    select a_id, a_name, a_level from test1 where a_name = inname;end $$delimiter ;call getrole('aaaa');

3. 查看存储过程

show create procedure cc\G;

4. 修改存储过程

show create procedure getrole\G;alter procedure getrole modifies sql data sql security invoker;show create procedure getrole\G;

5. 删除存储过程

drop procedure if exists getrole;

五、总结

存储过程通过将复杂操作预先编译并存储,可以有效提升数据库性能和灵活性。其优势在于减少了客户端与数据库之间的交互,优化了资源利用。通过合理使用存储过程,可以显著提升系统性能,同时增强数据库的安全性和可维护性。

转载地址:http://opeu.baihongyu.com/

你可能感兴趣的文章
PHP正则表达式获取武汉市的实时pm2.5数据并邮件发送phpmailer
查看>>
RabbitMQ + JMeter组合,优化你的中间件处理方式!
查看>>
PHP水仙花问题解法之一
查看>>
php没有解析是怎么回事,linux下php文件没有被剖析怎么办?_后端开发
查看>>
php注册页面实现注册后跳转页面
查看>>
PHP消息队列的实现方式与详解,值得一看
查看>>
PHP混合Go协程并发
查看>>
php源码中如何添加滚动公告,给WordPress网站添加滚动公告的方法
查看>>
PHP源码安装后如何新增模块
查看>>
php源码详细安装步骤,linux下php源码安装步骤
查看>>
php漏洞tips
查看>>
php版Zencoding之 phpstorm
查看>>
PHP版本升级5.4手记
查看>>
php版本升级总结
查看>>
php版本微信公众号开发
查看>>
php版的微信公众号开发演示
查看>>
php生成html文件的多种方法介绍
查看>>
php生成二维码到图片上
查看>>
php生成二维码并下载图片(适应于框架)
查看>>
PHP生成及获取JSON文件的方法
查看>>