
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
事务是程序员在学习服务器开发架构技术需要重点掌握的一个编程知识点,而今天我们就通过案例分析来了解一下,事务隔离级别与其他基础知识分享。
1.隔离级别
一共有四种隔离级别先简单做个介绍:
A.READUNCOMMIT(读未提交)
在这个隔离级别中,事务的修改,即使没有提交,对其他的事务也是可见的。事务可以读到未提交的数据,这些数据也被称为脏读。
B.READCOMMIT(读已提交)(不可重复读)
大多数数据库系统的默认隔离级别都是读已提交,但是MySQL不是,MySQL的默认隔离级别是可重复读。简单说就是一个事务开始时只能“看见”已经提交的事务所做的修改,换句话说,一个事务从开始到提交这个过程中所做的所有修改对其他事务是不可见的。这个级别对于两次执行相同情况的查询,可能会得到不同的结果。
C.REPEATABLEREAD(可重复读)
该级别保证了在同一个事务中多次读取同样的记录结果是一致的,但是它无法解决幻读的问题。
D.SERIALIZABLE(可串行化)
是高的隔离级别。它通过强制事务串行化执行,避免了所有问题,他会在读取的每一行记录上面都加锁,所以可能导致大量的超时与锁等待的问题,并发低。
2.死锁
多个事务在同一资源上相互占有,并且请求锁定对方占用的资源,从而导致恶性循环的现象。
数据库系统实现了各种死锁检测和死锁超时机制。InnoDB目前处理死锁的方法是:将持有少行排它锁的事务进行回滚。
3.事务日志
事务日志可以提高事务的效率,使用事务日志时:存储引擎在修改表数据时只需要修改其内存拷贝,再把该修改行为记录到持久在硬盘上的事务日志中,不用每次将修改的数据本身持久到硬盘。事务日志采用追加的方式,写日志的操作是磁盘上的一小块区域内的顺序I/O.事务日志持久后,内存中被修改的数据将在后台慢慢刷回到磁盘。所以一共需要两次磁盘I/O:一次写日志磁盘I/O,一次刷回磁盘I/O.
4.MySQL中的事务
1.自动提交:MySQL默认采用自动提交的方式。比如每个查询就是一个事务执行完自动提交。
2.非事务型存储引擎如:MyISAM无回滚功能。
希望这辈子,最让你无悔的事情就是来达内学习!学习向来不是件易事,但无论过程多么艰难,希望你依然热爱生活,热爱学习!永远记得,达内将与你一同前行!现在扫码,立即领取万元课程礼包,助力0基础快速入行,为你梳理行业必备技能,全方位了解岗位发展前景!
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。