您的位置:首页 > 理论基础 > 计算机网络

Java解析网络数据流的三种特殊方法

2008-06-26 10:08 459 查看
隔离级别概念:

一、读未提交(READ-UNCOMMITTED)

当事务隔离级别设置为READ-UNCOMMITTED(读未提交)时,在这种状态下,一个会话更新的数据会被其他的会话马上看到,即使该更新的数据尚未被事务所提交(commit)。

结论:当一个会话的(session)事务隔离级别被设置为READ-UNCOMMITTED时,那么它将可以马上看到其他会话更新的未提交数据,也既会出现脏读。

二、读已提交(READ-COMMITTED)

当事务隔离级别设置为READ-COMMITTED(读已提交)时,在这种状态下,一个会话更新的数据不会被其他的会话马上看到,除非该更新的数据已被事务所提交(commit)。

总结:当一个会话的(session)事务隔离级别被设置为READ-COMMITTED时,那么它只可以看到其他会话已经提交的数据。

三、可重复读(REPEATABLE-READ)

当事务隔离级别设置为REPEATABLE-READ(可重复读)时,在这种状态下,同一个事务中的多次查询结果都是一致的(既不会出现不可重复读的现象),即使在此期间其他会话更新了数据,这些数据对其也是不可见的。

由此可见,当事务的隔离级别被设置为REPEATABLE-READ后,同一个事务中的select语句查出的结果都是一致的,其他事务在此期间提交的数据将对其不可见。

四、串行化(Serializable)

当事务隔离级别设置为SERIALIZABLE(串行读)时,在这种状态下,一个会话事务中的select操作将会阻塞其他事务的写(add、update和delete)操作,但不会阻塞读。

由此可以得出结论,当(session)事务的隔离级别被设置为SERIALIZABLE时,一个会话中的select操作会阻塞其他会话中的写操作,但不会阻塞select操作,而且一个会话中的写操作,会阻塞其他会话对同一条数据进行写操作。

设置:

一.查看当前会话隔离级别

select @@tx_isolation;

二.查看系统当前隔离级别

select @@global.tx_isolation;

三.设置当前会话隔离级别

set session transaction isolatin level repeatable read;

四.设置系统当前隔离级别

set global transaction isolation level repeatable read;

五.命令行,开始事务时

set autocommit=off; 或者 start transaction;

提交事务时

commit;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: