MYSQL 存储过程1、SQL存储过程的基础知识
在深入理解MySq之前,我们先理下一些简单的问题
Q:什么是存储过程?(stored procedure)
A:是一段写好的SQL代码,特别的就是它是存在数据库的目录里。所以外部程序可以直接调用数据库里面定义好的存储过程,另外数据库内部的触发器(trigger)、或者其他存储过程也可以调用它。
Q:存储过程有什么好处?有什么坏处?
A:
先看看好处吧:
1、首先在性能上的提高,比起通过应用程序发送sql语句给数据库执行,让数据库自己内部执行存储过程效率更高、速度更快(存储过程将sql编译好后存在数据库目录下);
2、存储过程还减少了应用程序同服务器自己的信息交互频率,可以想象在不是使用存储过程的情况,应用程序需要发送多条sql指令给服务器,而使用存储过程则只要一条调用存储过程的语句,然后获取需要的数据就ok了。
3、存储过程重用性比较高,并且是透明的,因为保存在数据库里面所以对任何应用来说都可以使用。新的应用只需要调用相应的存储过程就可以得到相应的数据服务。
4、存储过程也是种安全的做法,数据库管理员可以对那些没有权限访问数据库中的表格的应用,给他们使用存储过程的权限来获得数据服务,可以看到这个
时候这些存储过程好像我们编程里面的”接口“这个概念。对于安全性要求很高的系统,例如银行,基本上常用的操作都是通过存储过程或者函数来进行的,这样完
全对应用”隐藏“了表格。
当然也有坏处:
1、存储过程会使得数据库占用的系统资源加大(cpu、memory),数据库毕竟主要用来做数据存取的,并不进行复杂的业务逻辑操作。
2、因为存储过程依旧是sql,所以没办法像编程语言那样写出复杂业务逻辑对应的存储过程。
3、存储过程不容易进行调试。
4、存储过程书写及维护难度都比较大。
了解这些优缺点对我们权衡使用存储过程有很大的帮助
MYSQL 存储过程1、SQL存储过程的基础知识的更多相关文章
- 恒大威武!关于SQL的一些基础知识整理回顾
首先的首先,恒大威武! 开始正题. 关系代数: 目前主流的关系型数据库,是建立在关系代数的基础上的,即他的数学支撑是关系代数. 关系代数主要包括如下几个二目运算:并运算union.交运算interse ...
- 数据库和SQL面试题基础知识(持续更新)
数据库方面基础知识复习 常问小问题: 一.like查询大小写问题: sql查询结果去重 SELECT distinct name FROM 表:平均数avg 一.like查询大小写问题: ①用bina ...
- sql server 数据库基础知识(二)
CASE函数用法1:单值判断,相当于switch caseCASE expression WHEN value1 THEN returnvalue1 WHEN value2 THEN returnva ...
- sql server 2008 基础知识
一.配置管理器 1.管理服务 使用配置管理器可以启动.停止.重新启动.继续或暂停服务. 服务器和客户端网络协议 2.SQLSMS 简介:SQLSMS是一个集成环境,用于访问.配置.管理和开发SQL ...
- MySQL优化 - 所需了解的基础知识
时隔一年半,期间一直想写但却觉得没有实质性的内容可记录,本文为 [高性能MySQL] 的学习日志整理分享(感兴趣建议读原书). 优化应贯穿整个产品开发周期中,开发过程中考虑一些性能问题与影响,总比出问 ...
- SQL Server 数据库基础知识
数据库(Database)是由文件管理系统发展起来的,按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. 特点: 尽可能小的冗余度. 具有较高的数据独立性和易扩 ...
- sql server 数据库基础知识(一)
主键(PrimaryKey):主键就是一个表中每个数据行的唯一标识.不会有重复值的列才能当主键.一个表可以没有主键,但是会非常难以处理,因此没有特殊理由表都要设定主键.SQLServer中生成GUID ...
- sql sever 2008基础知识
下面是一些总结,如果执行时发现错误,可以查看错误消息进行解决,也可上网查资料 数据库的组成: 主数据文件:有且只有一个,扩展名为.mdf. 次数据文件:可以没有,也可以有任意个.扩展名为.ndf. 日 ...
- cmd常用命令 和 sql server相关基础
在Java开发中 ms sql server 接触算是比较少的,本文记录一些ms sql server的基础知识. 1. 为表字段增加索引:create index user_openid on us ...
随机推荐
- 使用yum快速升级CentOS 6.5内核到 3.10.28
网上有不少升级CentOS内核的文章,如<CentOS 6.5 升级内核到 3.10.28>,大部分都是下载源码编译,有点麻烦. 在yum的ELRepo源中,有mainline(3.13. ...
- 【转】Ansys 13.0 flexlm not running完美解决方案
http://jingyan.baidu.com/article/af9f5a2dd9843a43150a4550.html 实测,12.1 用此方法问题同样得解.
- 【转】 Linux/Unix 进程间通信的各种方式及其比较
http://blog.csdn.net/guopengzhang/article/details/5528260 进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问 ...
- 手把手教你把VIM改成一个集成开发环境
转载自:http://blog.csdn.net/wooin/article/details/1858917 在原文基础上经过自己验证,修改和完善 OS:Fedora19 VIM:VIM7.4 一.写 ...
- 快速查询本机IP 分类: windows常用小技巧 2014-04-15 09:28 138人阅读 评论(0) 收藏
第一步: 点击windows建(屏幕左下方),在搜索程序和文件文本框内输入:cmd 第二步: 点击Enter建进入. 第三步: 输入:ipconfig即可. 版权声明:本文为博主原创文章,未 ...
- 全文检索luncence
检索技术基本原理: 最主要的两点是 1.如何创建索引 2.如何查询. 分析需求: 好几篇文档,从这些文档找关键词,一种方式是顺序一个个遍历,加入这些文档量很多,就花费太长时间了,第二种是建立索引, ...
- Java中的字符串流的读取和写入(创建文件并判断重复账户)
各位我又来了!!哎!好心酸!我还没注册到三天!!没法登上博客的首页!!心累!! import java.io.BufferedOutputStream; import java.io.Buffered ...
- crowd在更改IP后无法登录的问题
org.codehaus.xfire.fault.XFireFault: Client with address "192.168.1.222", and hostname &qu ...
- [CSS3] CSS :target Selector
The :target selector allows us to interact with a fragment identifier, or hash, in our URL from CSS. ...
- android 自定义progressDialog实现
我们在项目中经常会遇到这样一个应用场景:执行某个耗时操作时,为了安抚用户等待的烦躁心情我们一般会使用进度条之类的空间,在android中让 大家最容易想到的就是progressbar或者progres ...