文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

mysql的事务隔离和幻读和死锁问题

2020-12-25 07:48

关注

mysql的事务隔离和幻读和死锁问题

1.系统要通过严格的ACID测试,ACID表示原子性/一致性/隔离性/持久性

原子性:一个事务必须被视为一个不可分割的最小工作单元
一致性:数据库总是从一个一致性的状态转换到另外一个一致性的状态
隔离性:通常来说一个事务所做的修改在最终提交以前对其他事务是不可见的
持久性:一旦事务提交,则其所做的修改就会永久保存到数据库中


2.sql标准中定义了四种隔离,较低级别的隔离可以执行更高的并发,开销也更低

READ UNCOMMITTED 未提交读,事务中的修改还没提交,其他事务就可以看到,这也是脏读,一般不会用READ COMMITED 提交读,大多数的默认级别,在提交之前,所做的任何修改对其他事务都是不可见的REPEATABLE READ 可重复读,解决了脏读的问题,保证了同一个事务中多次读取同一个记录结果一致,但是还是会有幻读问题SERIALIZABLE 可串行化,避免幻读问题,每一行都加锁

 

3.事务的隔离级别下的问题

脏读:事务可以读取别的事务未提交的脏数据
不可重复读:事务不可以读取未提交的数据,但是如果在另一个事务修改并提交了数据,此时可以读取到,同一事务两次相同的select结果可能会不同
幻读:事务不可以读取未提交的,也不能读取修改提交的,但是当另一个事务插入新数据提交后,我本次事务有时会插入冲突,或者更新时更新的数据多了
加锁:强制串行执行,锁开销比较大

 

4.查看隔离级别:

select @@global.tx_isolation, @@tx_isolation;
| @@global.tx_isolation | @@tx_isolation |
+-----------------------+-----------------+
| REPEATABLE-READ | REPEATABLE-READ

5.幻读问题

开启事务,查询数据

v2-b334d43e13341008d70862e959dd52c9_720w.jpg

此时有另外的会话插入新数据

v2-b4eb184f00ef31e51400588771dd5768_720w.png

再次查询新数据不会出现,但是插入时会报错

v2-5b629fa07fcc92021daff7f7b0db39bc_720w.jpg

6.mysql 死锁:

1.两个或多个事务在同一个资源上相互占用,并请求锁定对方占用的资源,导致恶性循环

2.解决这种问题,检测到死锁的循环依赖,立即返回一个错误
3.时间达到了锁等待超时限定,放弃锁请求
4.将持有最少行级写锁的事务回滚
5.如果是真正的数据冲突,这种是很难避免的,必须要提交或回滚其中一个事务

开启事务,更新数据,还没提交

v2-ce62ce3e743da9d8f73061940c76f144_720w.jpg

此时另外的会话执行同样的更新,会阻塞,一段时间和会报错

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

v2-f4831f65ec4b51f023b236ae055533e5_720w.png

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯