Mysql数据库隔离级别

1、隔离级别分以下几种:

  •       未提交读。事务不需要提交就可以读。
  •        提交读。
  •        可重复读。 
  •         序列化读。 

 

Mysql默认的是可重复读。

 

查看Mysql当前隔离级别:

select @@tx_isolation;

 

修改隔离级别:

set global tx_isolation='read-uncommitted';  

 

 

 下面说下这几种隔离级别的区别:

其中第1种和第4种没什么好说的:

1、第1种就是什么锁都没有,所以会产生脏读、不可重复读、幻读;

2、第4种是所有操作全部加排他锁,那么无论读写全是串行,所以数据上特别安全,但性能超低。

3、第2种是read committed.就是只有提交了才能读。但是会产生不可重复读。

举例:事务A在执行一个事务,耗时10个步骤,需要10秒,第一步update编号为1数据完了,可此时事务B也更新编号为1的数据,并提交了。结果用事务A再查询编号为1的数据时,发现结果不正确了。所以叫不可重复读。

4、第3种是repeatable read.叫可重复读。它的原理是一旦事务A开启事务了,那么事务B再对同一数据进行写时,则阻塞。但它会产生幻读。

举例:事务A在执行一个事务,耗时10个步骤,需要10秒,第一步update编号为1数据完了,可此时事务B也企图更新编号为1的数据时就会阻塞,避免了3的问题。所以叫可重复读。

但是它不能避免幻读。

幻读举例:事务A在执行一个事务,查询出数据是10条,可此时事务B插入了一个新的数据,A再查询是发现是11 了。所以出现幻觉了,叫幻读

 

5、注意到,mysql不可重复

6、可以用SecureCRT开2个窗口用MySQL自带客户端连接服务器。

 

 

1、美团教程:

2、CSDN教程:

3、iteye教程

4、imysql教程

 

你可能感兴趣的:(DB,axis1.4,mysql)