• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    mysql 详解隔离级别操作过程(cmd)

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

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

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

    Repeatable Read –可重复读-(在当前事务内,重复读取第一次读取过的数据就叫可重复读。)

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

    set transactionisolation level read uncommitted;

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

    Set sessiontransaction isolation level read uncommitted;

       然后再查看是否已经发生改变:

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

    starttransaction;

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

    update stud setname='Jhon' where id=1;

       其后在A端执行查询:select * from stud;

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

    Rollback;

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

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

     读已提交操作过程:-read COMMITTED

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

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

    set transactionisolation level read committed;

       在A端开启事务:

       starttransaction;

       在B端开启事务

    3、在A端进行查询:

    Select * fromstud;

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

    Update stud setname='itcast' where id=1;

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

     可重复读示例Repeatable Read

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

    Select@@tx_isolation;

    2、先在A端在开启的事务内进行查询。

    然后在B端修改数据库的内容。

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

     Serializable是最高级的隔离级别

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

    set transactionisolation level serializable;

    在A端开启一个事务-并对stud表进行查询。

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

    类似于线程同步的概念

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

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

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

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

     感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

    您可能感兴趣的文章:
    • 深入理解Mysql的四种隔离级别
    • MySQL四种事务隔离级别详解
    • 通过实例分析MySQL中的四种事务隔离级别
    • Mysql事务隔离级别原理实例解析
    • 详解MySQL中事务隔离级别的实现原理
    • mysql隔离级别详解及示例
    上一篇:win10免安装版本的MySQL安装配置教程
    下一篇:macOS Sierra安装Apache2.4+PHP7.0+MySQL5.7.16
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    mysql 详解隔离级别操作过程(cmd) mysql,详解,隔离,级别,操作,