MySQL如何手动提交事务,事务的四大特性,事务并发访问引发的问题,事务的隔离级别

手动提交事务

事务的操作MySQL操作事务的语句
手动开启事务start transaction
手动提交事务commit
手动回滚事务rollback
查询事务的自动提交情况show variables like ‘%commit%’;
设置事务的手动提交方式set autocommit = 0 关闭自动提交, 1 开启自动提交
  1. 开启事务 -> 执行SQL语句 -> 成功 -> 提交事务
  2. ​开启事务 -> 执行SQL语句 -> 失败 -> 回滚事务

注意:
只要提交事务,那么数据就会长久保存了,就不能再回滚事务了
提交事务,回滚事务都是代表结束当前事务的操作

事务的四大特性(ACID)

事务特性含义
一致性(Consistency)事务前后数据的完整性必须保持一致
原子性(Atomicity)事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
隔离性(Isolation)是指多个用户并发访问数据库时,一个用户的事务不能被其它用户的事务所干扰,多个并发事务之间数据要相互隔离,不能相互影响。
持久性(Durability)指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响

事务并发访问引发的三个问题

并发访问的问题含义
脏读一个事务读取到了另一个事务中未提交的数据。最严重,一定避免
不可重复读一个事务中两次读取的数据内容不一致,这是事务update时引发的问题
幻读(虚读)一个事务内读取到了别的事务插入或者删除的数据,导致前后读取记录行数不同。这是insert或delete时引发的问题

事务的隔离级别

级别名字隔离级别脏读不可重复读幻读数据库默认隔离级别
1读未提交read uncommitted
2读已提交read committedOracle和SQL Server
3可重复读repeatable readMySQL
4串行化serializable

安全性:serializable > repeatable read > read committed > read uncommitted

性能 : serializable < repeatable read < read committed < read uncommitted

设置全局事务隔离级别:

set global transaction isolation level 隔离级别;
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值