MySQL的存储过程优缺点
MySQL的存储过程优缺点
1、存储过程概念
存储过程是一些sql语句和控制语句组成的被封装起来的过程,它驻留在数据库中,可以被客户应用程序通过存储过程名字调用,也可以从另一个存储过程或触发器调用。
它的参数可以被传递和返回,与应用程序中的函数过程类似,
存储过程可以通过名字来调用,具有输入参数和输出参数。
2、存储过程分类
返回记录集的存储过程
----从数据库返回符合一个或几个条件的记录返回数值的存储过程(标量存储过程)
----在数据库执行一个有返回值的函数或命令行为存储过程
-----在数据库中的更新和删除操作
3、为什么要是用存储过程?
优点:
(1) 执行速度快:
存储过程只在创建时进行编译,以后每次执行存储过程都不需要重新编译,
而一般SQL语句没执行一次就需编译一次,所以使用存储过程可提高数据库的执行速度。
(2) 减少网络通信量
当对数据库进行复杂操作时,(如对多个表进行insert、update、select、delete时)可将这些复 杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序完成就是多条SQL语句,可能要多次连接数据库,而换成存储过程只需一次连接。
(3) 更强的适应性与复用性
存储过程可以重复使用,提高了可重用性,减少数据库开发人员的工作量。
(4) 可维护性高——更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力。
(5) 安全性高,可设定只有某用户才能对指定存储过程的使用权,且存储过程比多条sql稳定,只要数据库不出现问题,基本上是不会出现什么问题的。
(6) 分布式工作——应用程序和数据库的编码工作可以单独进行,减少耦合度。
(7) 更好的版本控制,通过svn等源代码控制工具可以轻松恢复或引用旧版本的存储过程。
4、存储过程的缺点
(1)开发调试差:无良好的IDE开发工具,存储过程的调试比一般SQL要复杂的多。
(2)可移植性差:由于存储过程将应用程序绑定到数据库上,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。
MySQL的存储过程优缺点相关推荐
- MySQL 之 存储过程
一.初识存储过程 1.什么是存储过程 存储过程是在大型数据库系统中一组为了完成特定功能的SQL语句集,存储在数据库中.存储过程经过第一次编译后,再次调用不需要编译,用户可以通过指定的存储过程名和给出一 ...
- MySql的存储过程的优点与缺点
MySql的存储过程的优点与缺点 一.存储过程优点 二.存储过程的弊端 三.总结 总结下使用存储过程的优缺点 一.存储过程优点 存储过程是一组预先创建并用指定的名称存储在数据库服务器上的 SQL 语句 ...
- MySQL 05 存储过程
MySQL 05 存储过程 文章目录 MySQL 05 存储过程 一.学习目标 二.存储过程 2.1为什么需要使用存储过程 2.2什么是存储过程 2.3存储过程的优缺点 三.创建存储过程 3.1语法与 ...
- Mysql使用存储过程快速添加百万数据
这篇文章主要介绍了Mysql使用存储过程快速添加百万数据,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 前言 为了体现不加索引和添加索引的区别, ...
- Java调用mysql的存储过程
在之前写过一篇博客是如何mysql如何创建存储过程,在这一节中,我们是在原来的基础上来进一步的学习,如何在Java程序中使用Java代码来调用mysql存储过程. mysql创建存储过程:http:/ ...
- mysql %type_mysql 存储过程 %type
MYSQL修改存储过程的访问权限 版权声明:本文为博主原创文章,未经博主允许不得转载.https://blog.csdn.net/inforstack/article/details/80547478 ...
- mysql 存储过程无效_用VC通过DLL包连接MySQL,执行存储过程后,再执行其他查询无效?解决方法...
用VC通过DLL包连接mysql,执行存储过程后,再执行其他查询无效? MYSQL mysql; mysql_init(&mysql); mysql_real_connect(&mys ...
- python调用数据库存储过程_python连接mysql调用存储过程示例
复制代码 代码如下: #!/usr/bin/env python # -*- coding: utf8 -*- import MySQLdb import time import os, sys, s ...
- MySQL 高级 - 存储过程 - 语法 - case结构
MySQL 高级 - 存储过程 - 语法 - case结构 -- 给定一个月份, 然后计算出所在的季度 create procedure pro_test7(mon int) begindeclare ...
最新文章
- 建立YUM服务器CENTOS
- STM32中EXTI和NVIC的关系
- 实现俄罗斯方块遇到的问题及游戏下载
- Python的函数名作为参数传入调用以及map、reduce、filter
- 【阿里云 Linux 服务器】在阿里云购买的 Linux 或者 Windows 服务器,在用 putty 访问的时候不知道用户名密码怎么办?
- Django-RESTframework序列器
- 剑指offer--斐波那契数列
- 大盘点: KubeCon EU 2019 应用管理领域的新看点!
- 计算机国二笔试试题,全国计算机等考试二笔试试题(2).ppt
- =====BJmeter性能测试小接=====
- LearnGL - 06.2 - Matrix - 矩阵03 - 逆矩阵、行列式、伴随矩阵、余子式、代数余子式、练习
- 计算机网络hdcp是什么意思,NTSC,HDCP ,NTSC/HDCP是什么意思
- rundll32.exe传入参数
- 关于Palantir——第一部分
- 消费返利模式的众筹玩法轻松无压力
- 在Js中使程序睡眠的sleep方法
- 3.Jenkins入门基础使用与Maven+SonarQube集成配置与实践
- 详解pandas的read_csv方法
- 移动性能测试工具perfDog分享和wifi链接问题
- 地平线机器人上海待遇_目前室内机器人、SLAM现状如何?行业内顶尖技术在哪些高校或企业 ?...
热门文章
- PCL之估计点云子集的表面法线
- 日常学习随笔-数组、单链表、双链表三种形式实现队列结构的基本操作(源码注释)...
- 201509-2-日期计算
- mysql cluster 乱码_Mysql中文乱码问题完美解决方案
- verilog实现多周期处理器之——目录及总述
- java多线程的api_java多线程之:线程对象一些api
- Ghost Blog
- 使用IDEA编写一个springMVC架构的HelloWorld
- js中做数字运算时出现的异常,期望值比实际值小太多太多
- 去oracle过程,记一次Oracle数据恢复过程