数据库-事务篇
admin
2024-04-04 16:52:11
0

事务的特性

  • 原子性 :在同一在项业务处理过程中,事务保证了对多个数据的修改,要么同时成功要么同时被撤销
  • 隔离性:在不同的业务处理过程中,事务保证了各业务在读写的数据相互独立,不会彼此影响。
  • 持久性:事务保证所有成功被提及的数据修改都能够正确地被持久化不丢失数据。
  • 一致性:通过上面三个方便,保证系统中的数据都是符合期望的,且相互关联的数据之间不会产生矛盾,即数据状态的一致性。

事务的锁和隔离级别

  • 写锁:也叫排他锁,简称X-Lock 如果数据有加写锁,就只有持有写锁的事务才能对数据进行写入操作,数据加写锁时,其他事务不能写入数据,也不能施加写锁。
  • 读锁:也叫共享锁,简称S-Lock 多个事务可以对一个数据添加多个读锁,数据在被加上读锁后就不能在加写锁,所以其他事物不能对数据进行写入,但不影响读,当拥有读锁的事务可以进行锁升级,加上写锁
  • 范围锁:对某个范围加上排他锁,在这个范围内的数据不能被写入
select * from user where age < 10 for update;

隔离级别

  • 可串行化 所有操作都加上读锁,写锁和范围锁即做到可串行化(简化理解实际更复杂)。
  • 可重复读(mysql-InnoDB默认) 对事务涉及到数据加读锁和写锁,且一直持续到事务结束,但不在加范围锁。比可串行化有些偏弱,会出现幻读的问题。幻读是指:在事务执行过程中,两个完全相同的范围查询得到不同的结果集。
    比如
select count(1) from user where age < 10;  执行顺序 1 事务T1
insert into user(name,age) values('yyl',5);  执行顺序 2 事务T2
select count(1) from user where age < 10;  执行顺序 3 事务T1
  • 读已提交 对事务设计的数据加写锁一直到事务结束,但加的读锁在查询操作后会马上释放。读已提交比可重复读偏弱,在与不可重复读问题。是指事务在执行过程中,同一行数据的两次查询得到不同的结果。
    比如
select * from user where id = 1;  执行顺序 1 事务T1
update user set age = 10 where id = 1 ; commit;执行顺序 2 事务T2
select * from user where id = 1;  commit;  执行顺序 3 事务T1

如果隔离级别是读已提交,这两次的查询结果会不一样,原因是读已提交的隔离级别缺乏贯穿整个事务周期的读锁,无法禁止读取过的数据发生变化,此时事务T2更新语句可以提交成功。影响了T1 的查询结果。可重复读级别不会释放读锁,其他事务插不进去。

  • 读未提交 只会对事务设计的数据加些锁,且一直持续到事务结束,但完全不加读锁,比读已提交偏弱,在于脏读问题,指一个事务执行过程中,一个事务读取到另一个事务未提交的数据,

比如

select * from user where id = 1;  执行顺序 1 事务T1
update user set age = 10 where id = 1;执行顺序 2 事务T2
// 注意没有commit
select * from user where id = 1;  执行顺序 3 事务T1
ROLLBACK;执行顺序 4事务T2

相关内容

热门资讯

3秒抢3个,二手溢价超600元... 今天(7月8日)起 迪士尼上新夏日单品 就是下面这几个娃娃 在官方线上平台 这几个娃娃一上线就秒没...
7月11日,凉山彝族火把节等你... 红星新闻网(记者 李婉清)7月8日报道7月8日,省政府新闻办在四川省新闻发布厅举行“万千气象看四川・...
暑假这样过才叫爽!超全攻略让你... 暑假终于来了!是不是已经按捺不住内心的激动,迫不及待想要开启快乐时光了呢?别急,让我为你奉上一份超全...
求姓名藏头诗一首,给女朋友的,... 求姓名藏头诗一首,给女朋友的,她叫刘树红要古体诗七言那种,意境要美要押韵你乃本是天生仙,与我相聚下凡...
希望大家给我介绍几本关于人生经... 希望大家给我介绍几本关于人生经历方面的好书,谢谢了!!!《让方向更清晰!!》作者:爱琳·C卡瑟拉《《...
海贼王萨博在德雷斯罗萨回忆里得... 海贼王萨博在德雷斯罗萨回忆里得知艾斯的死讯是在哪集?没有具体说明在哪集,那只是个回忆片段而已。动漫里...
武林外传里佟掌柜儿时的好友说的... 武林外传里佟掌柜儿时的好友说的是什么地方的方言?一楼的,是陕西话那为什么和佟掌柜说的不一样?是陕西话...
用英语以春节为题的手抄报 春节... 用英语以春节为题的手抄报 春节英语手抄报小学生春节英语手抄报教程关于春节的英语手抄报怎么画春节英语手...
大学生研发校徽月饼是什么样子的... 大学生研发校徽月饼是什么样子的?大学生研发“校徽月饼”走红 原料取材学校培育作物。陕西大学生研发“彩...
《潜伏》中,晚秋是个什么样的人... 《潜伏》中,晚秋是个什么样的人?结局如何晚秋有着悲惨的命运,一直深爱着孙红蕾,最后孙红蕾在香港执行任...
我爱上了我的小学女同桌,我13... 我爱上了我的小学女同桌,我13岁13岁 好小的年龄呀!暗恋两年也不错,主要是你们太小了,现在你们懂得...
TVB出过一个动画是在讲一些章... TVB出过一个动画是在讲一些章鱼小丸子的故事的叫什么?【是在一个类似放学ICY的节目播的】章鱼小超人...
谁有周建龙版的 有声小说 盗墓... 谁有周建龙版的 有声小说 盗墓笔记 7 8 部 分享下 谢谢盗吧首页吧规+资源,甭找了,就没这东西周...
当你一个人在深夜发呆的时候 会... 当你一个人在深夜发呆的时候 会听什么歌?推荐几首好听的额你喜欢悲伤的还是节奏性强的啊?
搞笑一家人剧情 搞笑一家人剧情尤美喜欢谁?我觉得才开始尤美喜欢允浩,允浩也喜欢尤美,只是尤美误会是她爸爸杀了开成嫂的...
跪求好听的歌! 跪求好听的歌!英文歌 中文歌都要 重在好听多来点啊下个,路口,见圣诞结 爱似水仙你若...
我只会打字,对电脑编程不懂怎么... 我只会打字,对电脑编程不懂怎么办?这没有其他的办法,只有深造你要学习吗?
百听不厌的50首经典老歌推荐 百听不厌的50首经典老歌推荐百听不厌的50首经典老歌推荐:1、后来2、光辉岁月3、鬼迷心窍4、大海5...
关于防溺水的手抄报,自己防溺水... 关于防溺水的手抄报,自己防溺水的卡通图片,各位亲,急用啊!
怪物猎人XX烬灭刃斩龙怎么打 怪物猎人XX烬灭刃斩龙怎么打你问怎么打没意义,各人打法不一样,比如咬尾巴大回旋人家直接滚过去输出,你...