加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql应用mysql 详解隔离级别操作过程(cmd)

发布时间:2020-12-12 02:53:15 所属栏目:MySql教程 来源:网络整理
导读:《Mysql应用mysql 详解隔离级别操作过程(cmd)》要点: 本文介绍了Mysql应用mysql 详解隔离级别操作过程(cmd),希望对您有用。如果有疑问,可以联系我们。 MYSQL学习 读未提交示例操作过程-Read uncommitted MYSQL学习 1、打开两个MySql的命令提示行,均进入相

《Mysql应用mysql 详解隔离级别操作过程(cmd)》要点:
本文介绍了Mysql应用mysql 详解隔离级别操作过程(cmd),希望对您有用。如果有疑问,可以联系我们。

MYSQL学习读未提交示例操作过程-Read uncommitted

MYSQL学习1、打开两个MySql的命令提示行,均进入相同数据库,并检查当前表内容为相同数据如下:

MYSQL学习

MYSQL学习2、在A、B两端执行select @@tx_isolation;检查当前默认的隔离级别别,可以发现都是

MYSQL学习Repeatable Read C可重复读-(在当前事务内,重复读取第一次读取过的数据就叫可重复读.)

MYSQL学习

MYSQL学习3、修改A端的隔离级别为readuncommitted C读未提交.意思是可以读取别人没有提交的数据.

MYSQL学习
set transactionisolation level read uncommitted;

MYSQL学习在绿色的MySql5.5上请执行:

MYSQL学习
Set sessiontransaction isolation level read uncommitted;

MYSQL学习?? 然后再查看是否已经发生改变:

MYSQL学习

MYSQL学习4、在A、B两端都开启事务

MYSQL学习
starttransaction;

MYSQL学习5、在B端修改一行数据如:

MYSQL学习
update stud setname='Jhon' where id=1;

MYSQL学习?? 其后在A端执行查询:select * from stud;

MYSQL学习

MYSQL学习6、此时B端再次执行回滚操作

MYSQL学习Rollback;

MYSQL学习?? 再在A端进行查询,结果发现数据又回到了之前的数据.这就是脏读

MYSQL学习

MYSQL学习7、对于B端写入的新数据,如果没有提交A端也一样能查询到,这叫幻读.

MYSQL学习

MYSQL学习?读已提交操作过程:-read COMMITTED

MYSQL学习1、 检查A、B两端是否一致:

MYSQL学习

MYSQL学习2、修改A端(左)的隔离级别为readcommitted;

MYSQL学习
set transactionisolation level read committed;

MYSQL学习?? 在A端开启事务:

MYSQL学习?? starttransaction;

MYSQL学习?? 在B端开启事务

MYSQL学习

MYSQL学习3、在A端进行查询:

MYSQL学习
Select * fromstud;

MYSQL学习在B端修改一行记录并提交

MYSQL学习
Update stud setname='itcast' where id=1;

MYSQL学习再回到A端进行查询,发现在同一个事务内,两次查询的结果不一样:

MYSQL学习

MYSQL学习?可重复读示例Repeatable Read

MYSQL学习1、查看A端的隔离级别是否为Repeatableread级别:

MYSQL学习Select@@tx_isolation;

MYSQL学习2、先在A端在开启的事务内进行查询.

MYSQL学习然后在B端修改数据库的内容.

MYSQL学习最后再在A端的同一事务内进行查询,发现结果一致.

MYSQL学习

MYSQL学习?Serializable是最高级的隔离级别

MYSQL学习1、在A端设置隔离级别为Serializable

MYSQL学习
set transactionisolation level serializable;

MYSQL学习在A端开启一个事务-并对stud表进行查询.

MYSQL学习在B端开启一个事务,并写入一行记录.此时发现B的代码并没有执行,因为它在等A提交之后它才执行.

MYSQL学习类似于线程同步的概念

MYSQL学习

MYSQL学习?这四种隔离级别采取不同的锁类型来实现,若读取的是同一个数据的话,就容易发生问题.例如:

MYSQL学习脏读(Drity Read):某个事务已更新一份数据,另一个事务在此时读取了同一份数据,由于某些原因,前一个RollBack(回滚)了操作,则后一个事务所读取的数据就会是不正确的.

MYSQL学习不可重复读(Non-repeatable read):在一个事务的两次查询之中数据不一致,这可能是两次查询过程中间插入了一个事务更新的原有的数据.

MYSQL学习幻读(Phantom Read):在一个事务的两次查询中数据笔数不一致,例如有一个事务查询了几列(Row)数据,而另一个事务却在此时插入了新的几列数据,先前的事务在接下来的查询中,就会发现有几列数据是它先前所没有的

MYSQL学习?感谢阅读,希望能赞助到大家,谢谢大家对本站的支持!

《Mysql应用mysql 详解隔离级别操作过程(cmd)》是否对您有启发,欢迎查看更多与《Mysql应用mysql 详解隔离级别操作过程(cmd)》相关教程,学精学透。编程之家PHP学院为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读