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

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

手动提交事务
事务的 *** 作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 隔离级别;

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/564444.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-06
下一篇 2022-04-06

发表评论

登录后才能评论

评论列表(0条)

保存