Mysql 四种 隔离级别学习(一)

SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。

Read Uncommitted(读取未提交内容)

在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少,读取未提交的数据,也被称之为脏读(Dirty Read)。

举个例子来说明一下 脏读, 如:在 test 库有一个表 tx,表里有3条数据,别外特别注意,测试之前先把自动提交事务关闭,并把隔离级别设置成Read Committed,如下图:

23.png

然后模拟客户端B,也开启了一个事务;并更新一条操作,如:

start transaction;
update tx set num=10 where id=1;

重点开始看了,此时,客户端B并没有提交事务,而客户端A却能获取 B 更新的数据, 这就是脏读,效果如下:

1462625229637737.png

好了,在此希望能帮助初学者,明天我们继续一起学习另一种隔离级别。如果哪有不明白或写错的,请高手留言说明,以免会误导其它朋友。谢谢!


未经允许不得转载:易读小屋  »  Mysql 四种 隔离级别学习(一)