mysql视图和存储过程哪个性能好_MySQL系列(6)
我是谁?暴鲤龙

66.事务的提交
事务有点像打包操作
开启事务:start transaction
事务:可以有很多个步骤,这些步骤要么全成功要么全失败
提交事务:commit

67.事务的回滚
rollback,当遇到突发情况时,撤销执行的sql语句
事务中的语句执行后,在事务中查询会发现已经修改了,而实际数据库中并未修改。
rollback,撤回事务中执行的语句




68.事务并发操作-脏读
多人同时操作数据库
脏读:看到了还没提交的事务,read committed读提交能解决脏读问题
隔离级别:默认是重复读repeatable read,还可以是read uncommitted(一个事务可以读取另一个未提交事务的数据),read committed(一个事务要等另一个事务提交后才能读取数据),serializable
rollback和commit都可以结束事务。
69.事务的隔离级别
read uncommitted(一个事务可以读取另一个未提交事务的数据),会产生脏读、不可重复读、幻读
read committed(一个事务要等另一个事务提交后才能读取数据),不会产生脏读,会产生不可重复读、幻读
repeatable read(重复读,默认),不会产生脏读、不可重复读,会产生幻读
serializable,不会产生脏读、不可重复读、幻读
不可重复读:一个事务范围内两个相同的查询却返回了不同的数据,解决方法:repeatable read(重复读)
幻读:解决方法,serializable,但这种事务隔离级别效率低下,比较耗数据库性能,一般不使用。
70.添加用户
权限操作
权限:限制一个用户能够做什么事情,mysql中可设置全局权限,指定数据库权限,指定表权限,指定字段权限。
权限包括:create,drop,alter,delete,index,insert,select,update,create view,execute,可以限制用户。
创建用户:create user “用户名”@“localhost” identified by “1234”;也可以navicat图形化创建
删除用户:drop user 用户名”@“localhost”;也可以navicat图形化右键删除,
71.分配权限
分配权限:给所有权限

加上flush privileges,刷新一下。
也可以创建对指定数据库的所有权限:语句略
还可以只对某个表的权限:语句略
查看权限:show grants
删除权限:revoke 权限 on 数据库对象 用户
72.视图简介
视图:虚拟的表,内容由查询定义
视图特性:对若干表的应用,一张虚拟表,可以和基表一样进行增删改查
视图作用:安全性、查询性能提高,提高了数据的独立性。
73.视图创建、修改、删除
视图创建,创建后的结果就在view视图中,创建后就可以从视图中进行查询了。

修改视图:视图发生了改变

删除视图:

74.视图查询机制
视图机制:替代式(操作视图时,视图名直接被视图定义给替换掉,相当于是字句,替换成了sql语句),具化式(先查询后放在内存中,再从内存这个表中提取数据)
视图中的各种参数
algorithm参数:merge(处理方式替代式,可以进行更新真实表中的数据,修改了视图中的数据,真实表中的数据也会被修改),temptable(具化式,数据存储在临时表中,不可以进行更新操作),undefined(没有定义algorithm参数),mysql更倾向于选择替代方式,因为更加高效。
with check option:更新数据时,不能插入或更新不符合视图限制条件的记录。
local和cascaded:为可选参数,决定了检查测试的范围,默认值为cascaded
75.视图不可更新部分
不可改部分:只要视图中的数据不是来自基表的,就不能直接修改。包括聚合函数,distinct关键字,gruop by字句,having字句,union运算符,from字句中包含多个表,select语句中引用了不可更新视图。
76.存储过程简介
存储过程:可编程的函数,是为了完成特定功能的sql语句集;具有名字的一段代码,能完成特定功能。
好处:可以将重复性很高的一些操作进行封装,简化对sql的调用;批量处理;统一接口,确保数据安全性;
77.delimiter
delimiter:把标准分隔符改成需要符号如$$

为了把存储过程作为整体,所以有时需要把标准分隔符进行修改。
78.存储过程创建,查看,删除
存储过程创建后会被长久保存

调用存储过程:call 名称()
查看存储过程:

查看存储源码

删除存储过程:
