MySQL(七) —— MySQL存储过程 & 存储引擎
MySQL中输入语句的执行过程:
如果我们可以将上面的过程简化,吧语法分析或者编译等步骤简化,则可以将整个流程简化。
存储过程:
- 是SQL语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理;
- 增强SQL语句的功能和灵活性;
- 实现较快的执行速度;
- 减少网络流量
//创建存储过程
CREATE
[DEFINER = {user | CURRENT_USER}]
PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body proc_parameter:
[IN | OUT | INOUT ] param_name type
//IN,表示该参数的值必须在调用存储过程时指定
//OUT,表示该参数的值可以被存储过程改变,并且可以返回
//INOUT,表示该参数的调用时指定,并且可以被改变和返回//调用存储过程
CALL sp_name([parameter[,...]])
CALL sp_name[()]//For example:
CREATE PROCEDURE sp1() SELECT VERSION(); CALL sp1();//For example:
DELIMITER //
CREATE PROCEDURE removeUserById(IN p_id INT UNSIGNED)
BEGIN
DELETE FROM test WHERE id = p_id;
END
// DELIMITER ;
CALL removeUserById(3);- 用@修饰的变量叫做用户变量,跟当前用户的客户端是绑定的。
- 存储过程较常用,一般独立的来执行,而函数可以作为其他SQL语句的组成部分来出现;
- 注意事项:
- 创建存储过程或者自定义函数时需要通过delimiter语句修改定界符;
- 如果函数体或过程提有多个语句,需要包含在BEGIN...END语句块中;
- 存储过程需要使用call来调用。
存储引擎:
MySQL可以将数据以不同技术存储在文件(内存)中,这种技术就成为存储引擎;
每一种存储引擎使用不同的存储机制、索引技巧、锁定水平,最终提供广泛且不同的功能。
MySQL主要包括五种存储引擎:MyISAM, InnoDB, Memory, CSV, Archive;
- 并发控制:当多个连接对记录进行修改时保证数据的一致性和完整性;
- 共享锁(读锁):在同一个时间段内,多个用户可以读取同一个资源,读取过程中数据不会发生任何变化。
- 排它锁(写锁):在任何时候只能有一个用户写入资源,当进行写锁时会阻塞其他的读锁或者写锁操作。
- 锁颗粒:
- 表锁,是一种开销最小的锁策略;
- 行锁,是一种开销最大的锁策略。
- 事务
- 事务用于保证数据库的完整性
- 事物的特性(ACID):原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)
- 索引
- 是对数据表中一列或多列的值进行排序的一种结构。
MySQL(七) —— MySQL存储过程 & 存储引擎的更多相关文章
- 【MySQL】MySQL(四)存储引擎、索引、锁、集群
MySQL存储引擎 MySQL体系结构 体系结构的概念 任何一套系统当中,每个部件都能起到一定的作用! MySQL的体系结构 体系结构详解 客户端连接 支持接口:支持的客户端连接,例如C.Java.P ...
- 《mysql技术内幕 InnoDB存储引擎(第二版)》阅读笔记
一.mysql架构 mysql是一个单进程多线程架构的数据库. 二.存储引擎 InnoDB: 支持事务 行锁 读操作无锁 4种隔离级别,默认为repeatable 自适应hash索引 每张表的存储都是 ...
- mysql 数据表操作 存储引擎介绍
一 什么是存储引擎? 存储引擎就是表的类型. mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制 ...
- mysql 库操作、存储引擎、表操作
阅读目录 库操作 存储引擎 什么是存储引擎 mysql支持的存储引擎 如何使用存储引擎 表操作 创建表 查看表结构 修改表ALTER TABLE 复制表 删除表 数据类型 表完整性约束 回到顶部 一. ...
- MySQL开发篇,存储引擎的选择真的很重要吗?
前言 谁说MySQL查询千万级别的数据很拉跨?我今天就要好好的和你拉拉家常,畅谈到深夜,一起过除夕!这篇文章也是年前的最后一篇,希望能带给大家些许收获,不知不觉查找文档和参考实体书籍就写了这么多,自己 ...
- MySQL内核:InnoDB存储引擎 卷1
MySQL内核:InnoDB存储引擎卷1(MySQL领域Oracle ACE专家力作,众多MySQL Oracle ACE力捧,深入MySQL数据库内核源码分析,InnoDB内核开发与优化必备宝典) ...
- mysql不同版本和存储引擎选型的验证
Mysql的版本和存储引擎较多,为了选择最适合业务使用的系统,需要进行一定的验证,本文描述mysql的验证过程和思路. 主要涉及: Mysql的版本 v Mariadb v Tokudb v Orac ...
- MySQL表类型和存储引擎版本不一致解决方法
使用的是老版本的mysql客户端Navicate 8 ,mysql 服务端用的是mysql5.6的版本,在修改版本引擎的时候出现版本不对; mysql error ‘TYPE=MyISAM’ 解决办法 ...
- mysql技术内幕InnoDB存储引擎-阅读笔记
mysql技术内幕InnoDB存储引擎这本书断断续续看了近10天左右,应该说作者有比较丰富的开发水平,在源码级别上分析的比较透彻.如果结合高可用mysql和高性能mysql来看或许效果会更好,可惜书太 ...
随机推荐
- IoC 依赖注入、以及在Spring中的实现
资源来自网络: 去年火得不行的Spring框架,一般的书籍都会从IoC和AOP开始介绍起,这个IoC概念,个人感觉资料里都写得让人看得有些痛苦,所谓IoC,就是控制反转(Inversion of Co ...
- Java随学随记
1.一个Java源文件可包含三个“顶级”要素: (1)一个包(package)声明(可选) (2)任意数量的导入(import)语句 (3)类(class)声明 该三要素必须以上顺序出现.即,任何导入 ...
- iOS 学习笔记 五 (2015.03.17)使用storyBoard进行tableview的跳转
方法一: 点击tableviewCell后,按住ctrl键拖拽至想要跳转的新的界面.这样跳转的结果是,点击tableview中的任何一行都会跳转到新的界面.可以通过控制cell的 属性 userInt ...
- 精通 JS正则表达式
一.正则表达式可以: 测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证 替换文本.可以在文档中使用一个正则表达式 ...
- Dijkstra 算法、Kruskal 算法、Prim算法、floyd算法
1.dijkstra算法 算最短路径的,算法解决的是有向图中单个源点到其他顶点的最短路径问题. 初始化n*n的数组. 2.kruskal算法 算最小生成树的,按权值加入 3.Prim算法 类似dijk ...
- webservice cxf error:org.apache.cxf.interceptor.Fault: Unmarshalling Error: 意外的元素 (uri:"", local:"ca
服务器端webservice接口 需要定义@WebParam,如: public ReturnDTO cardBatchSyn(@WebParam(name = "cardBatchSynM ...
- js 字符串比较
<script type="text/javascript"> function test(){ //1)纯数字之间比较 //alert(1<3);//true ...
- 关于ADO.NET@SQL Server&SqlDataReader
先说基础的,说基础的明白了再深的也是一样的.SQL是关系型数据库,所以就决定了对其操作的时候ADO的一些类要相互联系,Connection 类Command对象(ExecuteReader()方法.E ...
- hdwiki 编码规范
编码规范 命名规范 1.1.主要的目录 control 里面是控制类 ,前台命名为something.php,则后台对应的是admin_+前台名称,名称应选有意义的英文单词,例如 前台 ...
- 准确率(Precision)、召回率(Recall)以及F值(F-Measure)
转载自:http://blog.csdn.net/yechaodechuntian/article/details/37394967 https://www.zhihu.com/question/19 ...