存储过程:可返回多个值
修改存储引擎:mysql将数据以不同的技术存储在文件中,每一种存储引擎使用不同的存储机制、索引技巧、锁定水平,提供广泛且不同的功能
MyISAM:全文索引,占用空间小
数据表对应三个文件
.frm(表结构定义文件),.myd(数据文件),*.myi(索引文件)
InnoDB:安全性,事务处理,数据行锁定,外键约束,占用空间大两倍
数据表只有一个*.frm文件,以及上一级目录的ibdata1文件
Memory
Archive
CSV
创建引擎:create table 表名(……)engine=存储引擎;
修改引擎:alter table 表名 engine=存储引擎;
查看引擎:show engines \G
并发控制:当多个连接对记录进行修改时保证叔觉得一致性和完整性
共享锁/读锁:多个用户同时间读取同资源,数据不会发生变化
排他锁/写锁:任何时候只有一个用户写入资源,当进行写锁会阻塞其他操作
表锁:开销最小的策略
行锁:开销最大的策略
存储过程是sql语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理
优点:
增强sql语句的功能和灵活性
实现较快的执行速度
减少网络流量
创建:create [definer=user 创建者] procedure 存储名 (参数1,参数2,…) 主体
选项:
in:参数值必须在调用存储过程时指定
out:参数值可以被存储过程改变并返回
inout:参数值在调用时指定,也可被存储过程改变并返回
修改:alter procedure 存储名 (参数),不能修改过程体
修改终止符:delimiter //
调用:call 存储名(参数1,参数2,…)
删除:drop procedure [if exist] 存储名
