内容简介:A->B(A给B转账100)正常mysql流程:当数据库上有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读(non-repeatable read)、幻读(phantom read)的问题,为了解决这些问题,就有了“隔离级别”的概念。
请口述以下问题:
- 什么是事务到特性,具体说说你到理解
- 请举一个案例描述为什么要用到事务(转账)
- 事务的隔离级别
- 待续。。。
1、事务到特性(ACID)
-
Atomicty 原子性
事务不可再分。
现实中的一个需求,由多条 SQL 实现时,现实中的一件事只有两种结果,要么成功要么失败。事务机制就实现了将多条sql“当成”一条sql来执行,通过这种机制加上人为的判断,实现多条sql要么都成功,要第都失败。 -
Consistence 一致性
事务的执行过程中,对数据表的影响是没有的。 -
Isolation 隔离性
当一个事件的执行,不会影响其他客户端的数据表中查询到的结果。 -
Duration 永久性
当一个事务执行交,其影响就是永久的。
A->B(A给B转账100)
正常 mysql 流程:
A账户 | B账户 |
---|---|
A-100 | B+100 |
可能情况:
情况 | A账户 | B账户 |
---|---|---|
第一种 | A-100 | B+100 |
第二种 | A-100 | B |
第三种 | A | B+100 |
第四种 | A | B |
2、隔离性与隔离级别
当数据库上有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读(non-repeatable read)、幻读(phantom read)的问题,为了解决这些问题,就有了“隔离级别”的概念。
SQL标准的事务隔离级别包括:读未提交(read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(serializable )
事务没提交,做等变更别等事务能看到 事务提交了,它做的变更别的事务才能看到 读也加锁啊写也加锁,读写锁冲突,后面的事务等前面事务执行完成再执行,一串
隔离得越严实,效率就会越低。需要找一个平衡点。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- golang[70]-未完待续....
- CSS-伪类选择器(未完待续。。。)
- 两小时openstack环境搭建(keystone)...未完待续……
- 你不知道的JavaScript上卷-读书笔记 - 未完待续...不用点开了~
- Spring 事务管理
- Hibernate事务管理
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web之困:现代Web应用安全指南
(美)Michal Zalewski / 朱筱丹 / 机械工业出版社 / 2013-10 / 69
《web之困:现代web应用安全指南》在web安全领域有“圣经”的美誉,在世界范围内被安全工作者和web从业人员广为称道,由来自google chrome浏览器团队的世界顶级黑客、国际一流安全专家撰写,是目前唯一深度探索现代web浏览器安全技术的专著。本书从浏览器设计的角度切入,以探讨浏览器的各主要特性和由此衍生出来的各种安全相关问题为主线,深入剖析了现代web浏览器的技术原理、安全机制和设计上的......一起来看看 《Web之困:现代Web应用安全指南》 这本书的介绍吧!