《MySQL进阶》
来源:互联网 发布:淘宝详情页怎么做美观 编辑:程序博客网 时间:2024/05/23 15:58
存储过程
存储过程:是SQL语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理.
SQL语句的执行过程:SQL命令–>MySQL引擎–(分析)–>语法分析–(编译)–>可识别命令–(执行)–>执行结果–(返回)–>客户端
储存过程功能:使SQL的执行可以省略上述(编译)过程(从第二次执行某条命令开始,第一次还是要编译的,只是以后再次执行时,储存过程直接调用储存在内存中的编译结果,而不是再次编译),提高执行速度.
注意事项:
- 创建存储过程或函数时,需要通过delimiter来修改定界符
- 如果过程体或函数体有多个语句,需要包含在begin…end语句块中
- 通过call来调用
delimiter //create procedure foo(in p_id int, out num int) begin delete from user1 where id=p_id; select count(*) from user1 into num; end// #创建存储过程delimiter ;call foo(1, @num); # 调用存储过程select @num;drop procedure foo; # 删除存储过程 select row_count(); # 返回增、删、插入影响的行数.
存储过程与函数区别
- 存储过程可以返回多个值,函数只有一个返回值
- 存储过程一般独立执行、函数可以作为其他SQL语句的组成部分出现
存储引擎
MySQL可以将数据以不同技术存储在文件中,这种存储技术就是存储引擎. 每种存储引擎使用不同的存储机制,索引技巧、锁定水平.
存储引擎:MyISAM、InnoDB
并发处理:锁
共享锁(读锁):在同一时间段,多个用户可以读同一个资源、读取过程中数据不会发生任何变化.
排它锁(写锁):在任何时候都只能有一个用户写入资源.
锁颗粒
表锁:开销小,一张表一个锁;行锁:开销大,每行都一个锁.
索引:对数据表一列或多列的值进行排序的一种结构,用于快速定位到某条记录.
设置存储引擎
# /etc/mysql/my.cnf中设置[mysqld]default-storage-engine=enginecreate table tb_name( ... ) engine=MySIAM;alter table tb_name engine=InnoDB;
阅读全文
0 0
- MySQl进阶
- Mysql进阶
- MySQL 进阶
- MySQL进阶
- MySQL 进阶
- MYSQL进阶
- mysql进阶
- mysql 进阶
- Mysql进阶
- mysql进阶
- MySql 进阶
- MySQL进阶
- 《MySQL进阶》
- mysql进阶
- MySQL进阶_SELECT篇
- MySQL进阶_SELECT篇
- Mysql 进阶&细节
- Mysql 游标操作-进阶
- Hibernate5在MySQL数据库中自动建表时报异常Error executing DDL via JDBC Statement
- javascirpt实现2个iframe之间传值的方法
- 浅谈static、类模板和函数模板
- 集群安装(单点与分布式成功安装)
- Mongodb更新数组$pull修饰符
- 《MySQL进阶》
- 使用 TCP 协议的面向连接的客户-服务器程序设计
- 浅谈 Spring 事务管理
- 加法变乘法
- ZooKeeper 快速搭建和客户端使用:
- oracle索引index
- Zookeeper和etcd使用场景
- python3使用operator.itemgetter对字典进行排序
- 1-n的整数中x出现的次数