zoukankan      html  css  js  c++  java
  • mysql 隔离级别

    隔离级别  

      mysql的事务隔离级别有四种,分别是读未提交、读已提交、可重复读、序列化,不同的隔离级别下会产生脏读、幻读、不可重复读等相关问题,因此在选择隔离级别的时候要根据应用场景来决定,使用合适的隔离级别:

      READ UNCOMMITTED(未提交读),事务中的修改,即使没有提交,对其他事务也是可见的。事务能够读取未提交的数据,这种情况称为脏读
      READ COMMITTED(读已提交),一个事务开始时,只能“看见”已经提交的事务所做的修改。有时候提交读也叫不可重复读(nonrepeatable read)
      REPEATABLE READ(可重复读),同一个事务中,多次读取同样记录的结果是一致的。mysql默认的隔离级别
           SERIALIZABLE(可串行化),最高隔离级别,完全服从ACID的隔离级别,读取每一行数据都加上锁,可能导致大量的超时和锁争用问题,一般不使用

      各种隔离级别和数据库异常情况对应情况如下:

    隔离级别脏读可能性不可重复读可能性幻读可能性加锁度
    READ UNCOMMITTED Y Y Y N
    READ COMMITTED N Y Y N
    REPEATABLE READ N N Y N
    SERIALIZABLE N N N Y

      脏读(Dirty Read):事务可以读取未提交的数据
      不可重复读(nonrepeatable read)也叫虚读:前后读取的记录数可能不一致。事务A在第一次读取记录为5,然后事务B执行了更改为10.事务A在第二次读取记录为10.
      幻读(Phantom Read):当某个事务A在读取某个范围内的记录时,另外一个事务B又在该范围插入新的记录,当事务A再次读取该范围的记录时,会产生幻行。

  • 相关阅读:
    解决安装mysql 到start service出现未响应问题
    【日历】自定义(上下月切换)
    html2canvas 无法渲染网络图片及本地 解决方案
    css 弹性盒子--“垂直居中”--兼容写法
    CSS垂直居中
    window.postMessage 在iframe父子页面数据传输
    小程序 rich-text 处理显示
    前端规范
    CSS技巧(一):清除浮动
    博客地址迁移
  • 原文地址:https://www.cnblogs.com/hzzjj/p/15111529.html
Copyright © 2011-2022 走看看