相关隔离 事务隔离级别 脏读 不可重复读 幻读
来源:互联网 发布:杭州淘宝tnt摄影基地 编辑:程序博客网 时间:2024/05/19 01:29
1.演示脏读发生
a窗口
set transaction isolation level read uncommitted;
start transaction;
select * from account;
-------------发现a帐户是1000元,转到b窗口
select * from account;
-------------发现a帐户是1100元,发生了脏读(这个事务读取到了别的事务未提交的数据)
b窗口
start transaction;
update account set money=money+100 where name='aaa';
-------------事务在不提交的情况下,转到a窗口进行查询
2.避免脏读,并演示不可重复读问题的发生
a窗口
set transaction isolation level read committed;
start transaction;
select * from account;
-------------发现a帐户是1000元,转到b窗口
select * from account;
-------------发现a帐户是1000元,这时我们发现read committed这种级别可以避免脏读
-------------转到b窗口
select * from account;
-------------发现a帐户是1100元,这时就发生不可重复读(指这个事务读取到了别的事务提交的数据)
b窗口
start transaction;
update account set money=money+100 where name='aaa';
-------------事务在不提交的情况下,转到a窗口进行查询
commit;
-------------转到a窗口
3.避免脏读、不可重复读,并演示虚读问题的发生
a窗口
set transaction isolation level repeatable read;
start transaction;
select * from account;
--------------------发现a帐户是1000元,并且表的总纪录数是3条,这时转到b窗口
select * from account
--------------------发现a帐户是1000元,这说明repeatable read这种级别可避免脏读
-------------------转到b窗口
select * from account
---------------------发现a帐户是1000元,这说明repeatable read这种级别还可以避免不可重复读
---------------------转到b窗口
select * from account
---------------------发现表中可能会多出一条ddd的记录,这就发生了虚读,也就是在这个事务内读取了别的事务插入的数据(幻影数据)
b窗口
start transaction;
update account set money=money+100 where name='aaa';
---------------------转到a窗口
commit;
---------------------转到a窗口
start transaction; 这个地方另外开一个事务才可以
insert into account(name,money) values('ddd','1000');
commit;
--------------------转到a窗口
a窗口
set transaction isolation level read uncommitted;
start transaction;
select * from account;
-------------发现a帐户是1000元,转到b窗口
select * from account;
-------------发现a帐户是1100元,发生了脏读(这个事务读取到了别的事务未提交的数据)
b窗口
start transaction;
update account set money=money+100 where name='aaa';
-------------事务在不提交的情况下,转到a窗口进行查询
2.避免脏读,并演示不可重复读问题的发生
a窗口
set transaction isolation level read committed;
start transaction;
select * from account;
-------------发现a帐户是1000元,转到b窗口
select * from account;
-------------发现a帐户是1000元,这时我们发现read committed这种级别可以避免脏读
-------------转到b窗口
select * from account;
-------------发现a帐户是1100元,这时就发生不可重复读(指这个事务读取到了别的事务提交的数据)
b窗口
start transaction;
update account set money=money+100 where name='aaa';
-------------事务在不提交的情况下,转到a窗口进行查询
commit;
-------------转到a窗口
3.避免脏读、不可重复读,并演示虚读问题的发生
a窗口
set transaction isolation level repeatable read;
start transaction;
select * from account;
--------------------发现a帐户是1000元,并且表的总纪录数是3条,这时转到b窗口
select * from account
--------------------发现a帐户是1000元,这说明repeatable read这种级别可避免脏读
-------------------转到b窗口
select * from account
---------------------发现a帐户是1000元,这说明repeatable read这种级别还可以避免不可重复读
---------------------转到b窗口
select * from account
---------------------发现表中可能会多出一条ddd的记录,这就发生了虚读,也就是在这个事务内读取了别的事务插入的数据(幻影数据)
b窗口
start transaction;
update account set money=money+100 where name='aaa';
---------------------转到a窗口
commit;
---------------------转到a窗口
start transaction; 这个地方另外开一个事务才可以
insert into account(name,money) values('ddd','1000');
commit;
--------------------转到a窗口
4、实现最高级别
---------------------------------------------------------------------------------------------------------------------
Oracal 只支持2种处理级别 : ReadCommint Serializable 2种级别
- 相关隔离 事务隔离级别 脏读 不可重复读 幻读
- 数据库事务隔离级别--脏读,幻读,不可重复读
- 数据库事务隔离级别-- 脏读、幻读、不可重复读
- 数据库事务隔离级别(脏读、幻读、不可重复读)
- 数据库事务隔离级别-- 脏读、幻读、不可重复读
- 数据库事务隔离级别-- 脏读、幻读、不可重复读
- 数据库事务隔离级别,脏读、不可重复读、幻读
- 数据库事务隔离级别-- 脏读、幻读、不可重复读
- 脏读、幻读和不可重复读 + 事务隔离级别
- 脏读、幻读和不可重复读 + 事务隔离级别
- mysql事务隔离级别 脏读,不可重复读,幻象读
- mysql事务隔离级别 脏读,不可重复读,幻象读
- mysql事务隔离级别 脏读,不可重复读,幻象读
- 脏读、幻读、不可重复读 and 乐观锁、悲观锁 and 事务五种隔离级别
- 数据库事务隔离级别-- 脏读、幻读、不可重复读(清晰解释)
- 脏读、幻读、不可重复读 and 乐观锁、悲观锁 and 事务五种隔离级别
- 数据库事务隔离级别-- 脏读、幻读、不可重复读(清晰解释)
- 脏读、幻读、不可重复读 and 乐观锁、悲观锁 and 事务五种隔离级别
- 简述Oracle IOT(Index Organized Table)(下)
- android网络通信之通过网络获得图片
- Ubuntu中eclipse下avd无法启动解决办法
- Mariadb - Fedora 17 安装过程
- posix和perl标准的正则表达式区别
- 相关隔离 事务隔离级别 脏读 不可重复读 幻读
- 常用的服务器端数据验证控件
- 入门知识之——VC++ 静态链接库和动态链接库的配置 (lib、dll)
- DNW FOR WIN7
- DataSet和DataTable有用的方法
- 《Linux 一》 Linux 应用与发展 --李明linux 学习笔记 -ady/
- 20121225_不完全恢复记录(rman)
- 《Linux 二》 Linux 的 安装
- float的存储问题