数据库事务的四种隔离机制和七种传播行为
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了数据库事务的四种隔离机制和七种传播行为,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2825字,纯文字阅读大概需要5分钟。
内容图文
MySQL数据库为我们提供的四种隔离级别:(依次解决脏读、不可重复读、幻读)
① Serializable (串行化):可避免脏读、不可重复读、幻读的发生。
② Repeatable read (可重复读):可避免脏读、不可重复读的发生。(Mysql默认的方式)
③ Read committed (读已提交):可避免脏读的发生。(Oracle默认的方式)
④ Read uncommitted (读未提交):最低级别,任何情况都无法保证。(INNODB内部机制)
数据库事务正常执行的四个特性:
ACID属性:
原子性(atomicity):即不可分割,事务要么全部被执行,要么全部不执行
一致性(consistency):事务的执行使得数据库从一种正确状态转换成另外一种正确状态
隔离性(isolation):在事务正确提交之前,不允许把事务对该数据的改变提供给任何其他事务
持久性(durability):事务正确提交之后,其结果将永远保存在数据库之中,即使在事务提交之后有了其他故障,事务的处理结果也会得到保存
并发下事务产生的问题:
1、脏读:事务A读到了事务B还没有提交的数据;
2、不可重复读:在一个事务里面读取了两次某个数据,读出来的数据不一致;
3、幻读:在一个事务里面的操作中发现了未被操作的数据。
幻读,需要应用使用加锁读来保证。而这个加锁度使用到的机制就是next-key locks。
SELECT * FROM t_bitfly LOCK IN SHARE MODE;
SELECT * FROM t_bitfly FOR UPDATE;(重复读,看到其他事物提交的数据)。
Read uncommitted - 读不需要加锁,写仅仅需要加行锁。 Read committed - 需要加写锁,读必须等待写事务结束。避免脏读 Repeatable reads - 需要加读锁,当有事务在读一行记录,其他写同一行的事务都会阻塞。避免不可重复读。 Serializable - 需要加范围锁,当有事务 SELECT 某个范围的数据时,其他访问同一范围的事务都会阻塞。避免幻读。
Oracle数据库中:
Serializable (串行化)级别。
Read committed (读已提交)这两种级别,其中默认的为Read committed级别。
在MySQL数据库中查看当前事务的隔离级别:
select @@tx_isolation;
在MySQL数据库中设置事务的隔离 级别:
set [glogal | session] transaction isolation level 隔离级别名称; set tx_isolation=’隔离级别名称;’
事务传播行为类型 |
说明 |
PROPAGATION_REQUIRED |
如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是 最常见的选择。 |
PROPAGATION_SUPPORTS |
支持当前事务,如果当前没有事务,就以非事务方式执行。 |
PROPAGATION_MANDATORY |
使用当前的事务,如果当前没有事务,就抛出异常。 |
PROPAGATION_REQUIRES_NEW |
新建事务,如果当前存在事务,把当前事务挂起。 |
PROPAGATION_NOT_SUPPORTED |
以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。 |
PROPAGATION_NEVER |
以非事务方式执行,如果当前存在事务,则抛出异常。 |
PROPAGATION_NESTED |
如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与 PROPAGATION_REQUIRED 类似的操作。 |
数据库事务的四种隔离机制和七种传播行为
标签:ports serial 事物 and 转换 新建 改变 share port
本文系统来源:https://www.cnblogs.com/shuchen007/p/9973435.html
内容总结
以上是互联网集市为您收集整理的数据库事务的四种隔离机制和七种传播行为全部内容,希望文章能够帮你解决数据库事务的四种隔离机制和七种传播行为所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。