概述
手动提交事务
事务的操作 | MySQL操作事务的语句 |
---|---|
手动开启事务 | start transaction |
手动提交事务 | commit |
手动回滚事务 | rollback |
查询事务的自动提交情况 | show variables like ‘%commit%’; |
设置事务的手动提交方式 | set autocommit = 0 关闭自动提交, 1 开启自动提交 |
- 开启事务 -> 执行SQL语句 -> 成功 -> 提交事务
- 开启事务 -> 执行SQL语句 -> 失败 -> 回滚事务
注意:
只要提交事务,那么数据就会长久保存了,就不能再回滚事务了
提交事务,回滚事务都是代表结束当前事务的操作
事务的四大特性(ACID)
事务特性 | 含义 |
---|---|
一致性(Consistency) | 事务前后数据的完整性必须保持一致 |
原子性(Atomicity) | 事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 |
隔离性(Isolation) | 是指多个用户并发访问数据库时,一个用户的事务不能被其它用户的事务所干扰,多个并发事务之间数据要相互隔离,不能相互影响。 |
持久性(Durability) | 指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响 |
事务并发访问引发的三个问题
并发访问的问题 | 含义 |
---|---|
脏读 | 一个事务读取到了另一个事务中未提交的数据。最严重,一定避免 |
不可重复读 | 一个事务中两次读取的数据内容不一致,这是事务update时引发的问题 |
幻读(虚读) | 一个事务内读取到了别的事务插入或者删除的数据,导致前后读取记录行数不同。这是insert或delete时引发的问题 |
事务的隔离级别
级别 | 名字 | 隔离级别 | 脏读 | 不可重复读 | 幻读 | 数据库默认隔离级别 |
---|---|---|---|---|---|---|
1 | 读未提交 | read uncommitted | 是 | 是 | 是 | |
2 | 读已提交 | read committed | 否 | 是 | 是 | Oracle和SQL Server |
3 | 可重复读 | repeatable read | 否 | 否 | 是 | MySQL |
4 | 串行化 | serializable | 否 | 否 | 否 |
安全性:serializable > repeatable read > read committed > read uncommitted
性能 : serializable < repeatable read < read committed < read uncommitted
设置全局事务隔离级别:
set global transaction isolation level 隔离级别;
最后
以上就是忧伤钻石为你收集整理的MySQL如何手动提交事务,事务的四大特性,事务并发访问引发的问题,事务的隔离级别的全部内容,希望文章能够帮你解决MySQL如何手动提交事务,事务的四大特性,事务并发访问引发的问题,事务的隔离级别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复