**前言:**上节内容我们主要说了如果没有设置保存点, 也可以回滚,但是只能回滚到事务的开始。直接使用rollback的前提是事务还没有提交。并且如果一个事务被提交了,就不可以回退。同时我们也可以使用savepoint设置回滚点。 可以自己选择想要回滚到的位置。同时最后我们也提到了,InnoDB支持事务, 但是MyISAM不支持事务。 这节就将更深入的使用事务。 看一下事物的特性——隔离性。下面友友们开始学习吧!
ps:本节内容建议友友们能够知道最基本的事务操作在观看哦。
目录
事务的隔离性
要理解隔离性, 我们就要知道什么叫做隔离性, 什么叫做隔离级别, 为什么会有这么多隔离级别。
如何理解隔离性
首先我们要知道, mysql在启动后, 一定会被多个客户端并发的访问。另外,我们可以向mysql同时发送多个事务, 对于我们上层来说,这些事务一定有执行前, 执行中, 执行后。一旦执行中出现问题, 就会发生回滚。所以单个事务,对用户表现出来的特性, 就是原子性。
而且, 多个事务执行的时候, 可能会互相影响。比如同时访问一张表, 同时修改一张表。所以, 在数据库当中,为了保证事务之间尽量互不干扰,就有了一个重要的特性——隔离性。
数据库中,允许事务收到不同程度的干扰, 这个就叫做隔离级别。
那么我们用一个故事来谈一谈数据的隔离性。
如果两个人都在同时访问数据库。 这两个人都开启了事务。 但是一个人想要update, 一个人想要select。 那么请问是update先跑呢, 还是select先跑呢? ——有人会说让update先跑, 因为我们要确定我们看到的是最新的。 ——这种说法是错误的。
为什么错误。 就可以这么来看——就比如一个小孩出生, 假如这个小孩是00后。 他的父母是70后, 80后。 那么这个小孩是不是需要关注他的父母从出生到生


1873

被折叠的 条评论
为什么被折叠?



