做网站就上凡科建站,dw网站log怎么做,百度网址ip,文字生成图片在线使用文章目录 概念事务的操作属性#xff08;aicd#xff09; 概念 一组DML语句#xff0c;这组语句要一次性执行完毕#xff0c;是一个整体 为什么要有事务#xff1f; 为应用层提供便捷服务 事务的操作
有一stu表 # 查看事务提交方式(默认是开启的)
show variables like au… 文章目录 概念事务的操作属性aicd 概念 一组DML语句这组语句要一次性执行完毕是一个整体 为什么要有事务 为应用层提供便捷服务 事务的操作
有一stu表 # 查看事务提交方式(默认是开启的)
show variables like autocommit;
# 设置提交方式
set autocommit0; # 关闭自动提交
set autocommit1; # 开启自动提交# 开始事务
begin; / start transation;
# 提交事务
commit;
# 回滚
rollback;
# 设置回滚点
save point [回滚点名];属性aicd
原子性atomicity隔离性isolation持久性durablility一致性consistency
原子隔离持久 ---- 一致 aid-c
这里重点讲一下隔离性的隔离级别隔离级别体现隔离性。
隔离级别分为四种
类型作用效果存在问题读未提交【read uncommitted】事务间并行操作互相影响脏读读提交【read committed】事务提交后互相影响不可重复读系统默认级别 可重复读【repeatable read】事务间并发独立执行全部提交完才得到结果幻读串行化【serializable】事务串行修改可并发查询并发读低效率低
在了解隔离级别前先掌握下面语句
# 查看全局的隔离级别
select global.tx_isolation(默认是repeatable)
# 查看本次会话的隔离级别(session.可以省略)
select session.tx_isolation # 找全局的进行初始化
# 设置隔离级别
set [session/global] transation isolation level [read uncommitted/read committed/repeatable read/serializable]读未提交 先设置隔离级别为read uncommitted
两个事务同时进行发现每次查询的结果都不一样我们把一个事务在执行中读到另一个执行中事务的更新(或其他操作)但是未commit的数据这种现象叫做脏读。
读提交 先设置隔离级别为read committed
两个事务同时进行一个事务提交之后另一个事务的结果才发生影响
同一个事务内同样的读取在不同的时间段(依旧还在事务操作中)读取到了不同的值这种现象叫做不可重复读 可重复读 先设置隔离级别为 repeatable read 可重复读的隔离性就比较完善了事务并发执行间的修改会不影响执行完后得到它们的最终结果。 串行化 先设置隔离级别为 serializable 不可重复读的重点是修改和删除同样的条件, 你读取过的数据,再次读取出来发现值不一样了幻读的重点在于新增同样的条件, 第1次和第2次读出来的记录数不一样。